Michael FrancisinGeek CultureTracing errors in Go using custom error types.Making Go errors more useful by embedding the stack information in custom error types.Aug 23, 2023Aug 23, 2023
Michael FrancisTowards a more literate program : spaces in symbol namesDo spaces really need to be special in programming and can we make reading programs more accessible?Sep 10, 20221Sep 10, 20221
Michael FrancisMusing on Go, Thunks, and delayed execution.This post is an adventure in delayed code execution in Go and some musings on shifting more functionality to the libraries vs. through…Sep 10, 2022Sep 10, 2022
Michael FrancisRevisiting JSON streaming in GoI didn’t plan on writing the fourth part of a series on JSON streaming, but then I stumbled on a pattern in a Go protobuf decoder that…Sep 4, 2022Sep 4, 2022
Michael FrancisPrinting Go Types as S-ExpressionsAn adventure in printing Go types as Lisp like expressions.Sep 3, 2022Sep 3, 2022
Michael FrancisinGeek CulturePitfalls of GoLang interface streaming to JSON (part3)Taking what we have learned and decoding a JSON list of heterogeneous structs with an embedded $type into a GoLang interfaceAug 16, 20221Aug 16, 20221
Michael FrancisinGeek CulturePitfalls of GoLang interface streaming to JSON (part2)In the first part of this short series, I covered the basic techniquesIn this part I touch on reflection and issues with type construction.Aug 15, 2022Aug 15, 2022
Michael FrancisinGeek CulturePitfalls of GoLang interface streaming to JSON (part1)Pitfalls of streaming interface values to JSON and back into Go. A walk through and solution.Aug 15, 2022Aug 15, 2022
Michael FrancisGo error handling, return if ?A ‘simple’ proposal for making Go errors less tiresome while not breaking Go’s core behavior. Go 2.0 proposal.Aug 12, 20222Aug 12, 20222
Michael FrancisThe ebbs and flows of writing softwareHave you ever noticed how cyclical productivity and creativity are when writing software? I’ve been at this job for nearly 30 years, yet I…Aug 4, 2022Aug 4, 2022