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

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 ask@saturdaymp.com.

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

Thanks for watching!

Posted in Code Examples, Saturday MP Show | Tagged , , , , | Comments Off on SaturdayMP Show 89: PostCast (Part 10 – Integration Tests and Keyring Saving)

SaturdayMP Show 88: Getting Started with Consulting

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 ask@saturdaymp.com.

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

https://github.com/sponsors/saturdaymp

Thanks for watching!

Posted in Business Side, Saturday MP Show | Tagged , , | Comments Off on SaturdayMP Show 88: Getting Started with Consulting

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

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 ask@saturdaymp.com.

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

Thanks for watching!

Posted in Saturday MP Show | Tagged , , , , , | Comments Off on SaturdayMP Show 87: Creating PostCast (Part 9 – Figuring Out Testing in Go)

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

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 ask@saturdaymp.com.

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

Thanks for watching!

Posted in Code Examples, Saturday MP Show, Software Development | Tagged , , , , | Comments Off on SaturdayMP Show 86: Creating PostCast (Part 8 – Investigate Keyring Libraries)

SaturdayMP Show 85: Creating PostCast (Part 7 – Prompt for LinkedIn Credentials)

In this episode Omar and myself hook up the Post to LinkedIn button and prompt the user to enter the credentials for LinkedIn, and it all works. Not the best flow, but we are still in the proof of concept stage.

We also learn about Go structs and how you can attach methods to them so get something similar to an object in other languages.

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

Fyne:
https://fyne.io/

Go:
https://go.dev/

LinkedIn API:
https://developer.linkedin.com/

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 ask@saturdaymp.com.

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

Thanks for watching!

Posted in Saturday MP Show | Tagged , , , , | Comments Off on SaturdayMP Show 85: Creating PostCast (Part 7 – Prompt for LinkedIn Credentials)

SaturdayMP Show 84: Creating PostCast (Part 6 – Create Fyne Main Screen)

In episode 84 of the SaturdayMP show, Omar Ashour and myself (Chris C.) create a very basic main screen using Fyne to input the text to post and a button to create the LinkedIn post. That said, the GUI doesn’t do anything yet, except look nice-ish. Lots of reading the Fyne documentation and experimenting with Fyne.

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

Fyne:
https://fyne.io/

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 ask@saturdaymp.com.

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

Thanks for watching!

Posted in Code Examples, Saturday MP Show, Software Development | Tagged , , , | Comments Off on SaturdayMP Show 84: Creating PostCast (Part 6 – Create Fyne Main Screen)

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

We 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 ask@saturdaymp.com.

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!

Posted in Code Examples, Saturday MP Show, Software Development | Tagged , , , | Comments Off on SaturdayMP Show 83: Creating PostCast (Part 5 – Go PoC for LinkedIn API)

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

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 ask@saturdaymp.com.

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!

Posted in Saturday MP Show, Software Development | Tagged , , , | Comments Off on SaturdayMP Show 82: Creating PostCast (Part 4 – Figuring out LinkedIn API)

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

In this episode we 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 ask@saturdaymp.com.

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!

Posted in Uncategorized | Comments Off on SaturdayMP Show 81: Creating PostCast (Part 3 – Creating GitHub Action)

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

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 ask@saturdaymp.com.

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!

Posted in Code Examples, Saturday MP Show, Software Development | Tagged , , , | Comments Off on SaturdayMP Show 80: Creating PostCast (Part 2 – Testing Fyne Packaging)