SaturdayMP Show 89: PostCast (Part 10 – Integration Tests and Keyring Saving)

https://youtu.be/RjX6LpxeFm4

Omar is back! We really got into the zone and recorded our longest PostCast video yet. Might be the longest SaturdayMP Show video yet. We don't edit out mistakes, so watch along as we learn in real time:

- how to write integration tests in Go (build tags vs. -short flag)
- how to create test setup/teardown in Go
- that the go-keyring library has mocking built in so we can simplify our tests
- how to connect our keyring logic to the Fyne GUI

Do you like or dislike the long live coding sessions? Should we try coding live instead of mostly live? Let us know in a constructive and polite manor.

*PostCast is just a place holder name and might change. The goofy PostCast placeholder image was generated by ChatGPT and will likely change.

zalando/go-keyring:
https://github.com/zalando/go-keyring

Build tags vs. Short:
https://stackoverflow.com/questions/25965584/separating-unit-tests-and-integration-tests-in-go

Fyne:
https://fyne.io/

Omar:
https://www.ashour.ca/

SaturdayMP:
https://saturdaymp.com/

PostCast Playlist:
https://www.youtube.com/playlist?list=PLYPcrKbLqwuvKQ97klk3bzyUPI6j154WC

Have a question you want answered in a future video? A challenging or interesting problem you want to see solved? Constructive feedback? Then comment, DM me, or send an email to [email protected].

Found this video useful? Then help others find it by liking, subscribing, sharing, and/or sponsoring:
https://github.com/sponsors/saturdaymp

Thanks for watching!

#saturdaymp #saturdaympshow #postcast #fyne #golang #keyring #integrationtests

SaturdayMP Show 89: PostCast (Part 10 – Integration Tests and Keyring Saving)

YouTube

SaturdayMP Show 88: Getting Started with Consulting

https://youtu.be/se-de4IBzRQ

No Omar this week, so I decided to answer a question I get frequently: How do I get started with consulting? Be aware that the advice is worth what you paid for it.

The feature image was generated using the free version of Google's Nano Banana. Took several prompts to get this image, which is not exactly what I wanted but close enough.

Have a question you want answered in a future video? A challenging or interesting problem you want to see solved? Constructive feedback? Then comment, DM me, or send an email to [email protected].

Found this video useful? Then help others find it by liking, subscribing, sharing, and/or sponsoring:
https://github.com/sponsors/saturdaymp

Thanks for watching!

#saturdaymp #saturdaympshow #consulting #freeadvice

SaturdayMP Show 88: Getting Started with Consulting

YouTube

SaturdayMP Show 87: Creating PostCast (Part 9 – Figuring Out Testing in Go)

https://youtu.be/ISXbVjTKN4c

In this episode Omar and myself figure out how to add tests in Go. We try the built-in Go testing framework but then settle on using Testify. Testify allows writing assertions like other testing frameworks we are used to. We also experiment with different ways to do mocking Go and try to figure out what the Go error object is.

*PostCast is just a place holder name and might change. The goofy PostCast placeholder image was generated by ChatGPT and will likely change.

Go Testing:
https://go.dev/doc/tutorial/add-a-test

Testify:
https://github.com/stretchr/testify

Omar:
https://www.ashour.ca/

SaturdayMP:
https://saturdaymp.com/

PostCast Playlist:
https://www.youtube.com/playlist?list=PLYPcrKbLqwuvKQ97klk3bzyUPI6j154WC

Have a question you want answered in a future video? A challenging or interesting problem you need you want to see solved? Constructive feedback? Then comment, DM me, or send an email to [email protected].

Found this video useful? Then help others find it by liking, subscribing, sharing, and/or sponsoring:
https://github.com/sponsors/saturdaymp

Thanks for watching!

#saturdaymp #saturdaympshow #postcast #unittesting #mocking #golang

SaturdayMP Show 87: Creating PostCast (Part 9 – Figuring Out Testing in Go)

YouTube

SaturdayMP Show 86: Creating PostCast (Part 8 – Investigate Keyring Libraries)

https://youtu.be/PRRHTxUAo00

In this episode Omar Ashour and myself (Chris C.) investigate several Golang keyring libraries and try to get the keyring to work on my Windows Subsystem for Linux (WSL). Spoiler: it was working all along, I was just too dumb to notice. Learned about Seahorse, a handy tool for viewing keychain entries.

We also discuses what the Windows Registry. Spoiler: it is just a big dumping ground of key-value pairs.

*PostCast is just a place holder name and might change. The goofy PostCast placeholder image was generated by ChatGPT and will likely change.

go-keyring:
https://github.com/zalando/go-keyring

Seahorse:
https://en.wikipedia.org/wiki/Seahorse_(software)

Omar:
https://www.ashour.ca/

SaturdayMP:
https://saturdaymp.com/

PostCast Playlist:
https://www.youtube.com/playlist?list=PLYPcrKbLqwuvKQ97klk3bzyUPI6j154WC

Have a question you want answered in a future video? A challenging or interesting problem you need you want to see solved? Constructive feedback? Then comment, DM me, or send an email to [email protected].

Found this video useful? Then help others find it by liking, subscribing, sharing, and/or sponsoring:
https://github.com/sponsors/saturdaymp

Thanks for watching!

#saturdaymp #saturdaympshow #postcast #golang #keyring #wsl

SaturdayMP Show 83: Creating PostCast (Part 5 – Go PoC for LinkedIn API)

https://youtu.be/jvj9GxPCYSo

We, myelf and Omar, get a Proof of Concept (PoC) in Go that completes the LinkedIn authorization. We end up figuring out the difference between a LinkedIn code and token. Get a code by entering your LinkedIn username and password, then use that code to get a token. We also spin up a local webserver to deal with the callback which is required to enter credentials and get the code.

*PostCast is just a place holder name and might change. The goofy PostCast placeholder image was generated by ChatGPT and will likely change.

LinkedIn Developer Console:
https://developer.linkedin.com/

Go:
https://go.dev/

PostCast Playlist:
https://www.youtube.com/playlist?list=PLYPcrKbLqwuvKQ97klk3bzyUPI6j154WC

Omar:
https://www.ashour.ca/

SaturdayMP:
https://saturdaymp.com/

Have a question you want answered in a future video? A challenging or interesting problem you need you want to see solved? Constructive feedback? Then comment, DM me, or send an email to [email protected].

Found this video useful? Then help others find it by liking, subscribing, sharing, and/or sponsoring:
https://github.com/sponsors/saturdaymp

Thank you for watching!

#saturdaymp #saturdaympshow #postcast #golang #api #linkedin

SaturdayMP Show 83: Creating PostCast (Part 5 – Go PoC for LinkedIn API)

YouTube

SaturdayMP Show 82: Creating PostCast (Part 4 – Figuring out LinkedIn API)

https://youtu.be/1QtsLWfrNQQ

Turns out getting a LinkedIn API key is confusing, at least for us. Did you know you need an Organization Page on LinkedIn to get a key? You can't just get an API key for yourself. No actual coding in this video, just lots of reading the LinkedIn docs and getting some curl scripts to work. If you have any tips for using LinkedIn API, let us know in the comments.

*PostCast is just a place holder name and might change. The goofy PostCast placeholder image was generated by ChatGPT and will likely change.

LinkedIn Developer Console:
https://developer.linkedin.com/

PostCast Playlist:
https://www.youtube.com/playlist?list=PLYPcrKbLqwuvKQ97klk3bzyUPI6j154WC

Omar:
https://www.ashour.ca/

SaturdayMP:
https://saturdaymp.com/

Have a question you want answered in a future video? A challenging or interesting problem you need you want to see solved? Constructive feedback? Then comment, DM me, or send an email to [email protected].

Found this video useful? Then help others find it by liking, subscribing, sharing, and/or sponsoring:
https://github.com/sponsors/saturdaymp

Thank you for watching!

#saturdaymp #saturdaympshow #postcast #linkedin #api

SaturdayMP Show 82: Creating PostCast (Part 4 – Figuring out LinkedIn API)

YouTube

SaturdayMP Show 81: Creating PostCast (Part 3 – Creating GitHub Action)

https://youtu.be/X09Kiow2RsI

In this episode we (myself and Omar Ashour) create a GitHub action to build PostCast*. Actually, it was more of a test if we could get GitHub actions working for a Fyne project.

I like having a CI/CD created as soon as I create a new project, so I know I can do a release at anytime. It also prevents the problem of "it worked on my machine" during development but now fails to run in production after creating the CI/CD at the last minute.

*PostCast is just a place holder name and might change. The goofy PostCast placeholder image was generated by ChatGPT and will likely change.

GitHub Actions:
https://docs.github.com/en/actions

Fyne Packaging:
https://docs.fyne.io/started/cross-compiling/

Omar:
https://www.ashour.ca/

PostCast Playlist:
https://www.youtube.com/playlist?list=PLYPcrKbLqwuvKQ97klk3bzyUPI6j154WC

Thanks to the Fyne IO team for developing Fyne and GitHub for creating GitHub Actions! Thanks to Omar for pairing with me.

Have a question you want answered in a future video? A challenging or interesting problem you need you want to see solved? Constructive feedback? Then comment, DM me, or send an email to [email protected].

Found this video useful? Then help others find it by liking, subscribing, sharing, and/or sponsoring:

https://github.com/sponsors/saturdaymp

Thank you for watching!

#saturdaymp #saturdaympshow #fyne #golang #githubactions #cicd #devops

SaturdayMP Show 81: Creating PostCast (Part 3 – Creating GitHub Action)

YouTube

SaturdayMP Show 80: Creating PostCast (Part 2 – Testing Fyne Packaging)

https://youtu.be/UwfyyYPsOwo

In this episode I'm joined by Omar, and we try cross-compiling and packaging our Fyne example app for Linux, Windows, and macOS. Spoiler alert: we get Linux and Windows working but fail because of a known bug with Fyne and macOS.

*PostCast is just a place holder name and might change. The goofy PostCast placeholder image was generated by ChatGPT and will likely change.

PostCast Playlist:
https://www.youtube.com/playlist?list=PLYPcrKbLqwuvKQ97klk3bzyUPI6j154WC

Fyne Packaging:
https://docs.fyne.io/started/cross-compiling/

Fyne-Cross macOS bug:
https://github.com/fyne-io/fyne-cross/issues/338

Go:
https://go.dev/

Omar:
https://www.ashour.ca/

Thanks to Google for developing Go and the Fyne IO team for developing Fyne and both for releasing them for free to everyone to use!

Have a question you want answered in a future video? A challenging or interesting problem you need you want to see solved? Constructive feedback? Then comment, DM me, or send an email to [email protected].

Found this video useful? Then help others find it by liking, subscribing, sharing, and/or sponsoring:
https://github.com/sponsors/saturdaymp

Thank you for watching!

#saturdaymp #saturdaympshow #golang #fyne #crosscompiling

SaturdayMP Show 80: Creating PostCast (Part 2 – Testing Fyne Packaging)

YouTube

SaturdayMP Show 79: Creating PostCast (Part 1 – Setting up Go Environment)

https://youtu.be/lMT_l2QjNFc

Happy New Year everyone! In this video I start on the PostCast* app, and this video turned out to be an hour of getting Go and Fyne set up. I've never used Go before, so it was a learning curve but not too bad.

Do you have any suggestions for improving my setup? If so, let me know. I'm sure I got something wrong and/or something could be improved.

*PostCast is just a place holder name and might change. The goofy PostCast placeholder image was generated by ChatGPT and will likely change.

Go:
https://go.dev/

Fyne:
https://fyne.io/

Have a question you want answered in a future video? A challenging or interesting problem you need you want to see solved? Constructive feedback? Then comment, DM me, or send an email to [email protected].

Found this video useful? Then help others find it by liking, subscribing, sharing, and/or sponsoring: https://github.com/sponsors/saturdaymp

Thank you for watching!

#saturdaymp #saturdaympshow #golang #fyne #postcast

SaturdayMP Show 79: Creating PostCast (Part 1 – Setting up Go Environment)

YouTube

It took me two videos and over 2 hours, but I finally solved the Day 1 - Part 2 Advent of Code 2025 challenge! I wonder if I'm that is the slowest time on record? At least the slowest time anyone would admit too.

Apparently solving Advent of Code problems is not my strong suite. They remind me of university assignments which I never really liked and is a big reason for not perusing a Master’s or PhD. Hopefully someone will just give me an honorary Master’s or PhD one day.

SaturdayMP Show 78: Advent of Code 2025 (Day 1 - Part 2: Success):
https://youtu.be/1qmdQy2FgA4

Day 1 – Part 2: Failure:
https://youtu.be/FCAHNP9kJ3U

Advent of Code 2025 – Day 1:
https://adventofcode.com/2025/day/1

Thanks to Eric Wastl for creating Advent of Code and putting it on every year:
https://was.tl/

Have a question you want answered in a future video? A challenging or interesting problem you need you want to see solved? Constructive feedback? Then comment, DM me, or send an email to [email protected].

Found this video useful? Then help others find it by liking, subscribing, sharing, and/or sponsoring: https://github.com/sponsors/saturdaymp

Thank you for watching!

#saturdaymp #saturdaympshow #adventofcode #javascript

SaturdayMP Show 78: Advent of Code 2025 (Day 1 - Part 2: Success)

YouTube