Scope trickiness in Go

Go scope is different for for loops and if blocks than in Python For example, with some code, package main import ( "fmt" "slices" ) func main() { var stuff = []string{ "foo", "bar", "hmm", } if idx := slices.IndexFunc(stuff, func(x string) bool { return x == "foo" }); idx == -1 { fmt.Println("yes") found := true } else { fmt.Println("no") found := false } fmt.Printf("found %v\n", found) } But the error is...

March 30, 2024 · 1 min · 155 words · Michal Piekarczyk

Go Sprinkle reflection on domain driven development

Ok cool, realizing, following on from earlier post, that to nicely test the case when I have a Merchant and I am only making updates to it with UpdateMerchantRequest, I would need a nice generic way to obtain a subset struct instance from the other. Getting ChatGPT to help, here is what I asked, Okay I have a strategy I’m using, where I have a go struct for a merchant that mirrors a postgresql database table and also another struct for updates to it which is a subset,...

February 24, 2024 · 2 min · 326 words · Michal Piekarczyk

Minimizing Golang struct types while observing tyep safety

Asked chat gpt the following conundrum, if I’m using Go struct types to model a data type, matching a table in my postgresql database say, type Merchant struct { id int, created_at time.Time, name string, phone string, email string, } I have the following question, does it make sense that I ended up creating different types also for the HTTP request to create this merchant, type CreateMerchantRequest struct { name string, phone string, email string, } since the id and created_at timestamps are populated automatically, and also another to update the merchant,...

February 4, 2024 · 2 min · 368 words · Michal Piekarczyk

Some of my notes through learning Golang by conversing with ChatGPT

I have not messed around with Golang yet and figured why not try to learn this through just chatting with ChatGPT? Not a full conversation below , but just using this to jot down some notes. And most of the code examples I’m pasting below are from ChatGPT. Error handling is very different in Go So no exceptions like Python. Instead, you can give a return tuple type from a function like this and the second term will be a error code....

December 23, 2023 · (updated January 7, 2024) · 10 min · 2115 words · Michal Piekarczyk

Exporting messages from Apple imessages

The problem Messages have been clogging up my iphone for a while now and at this point, they are taking up maybe 15Gigs. Most of this is photo attchments. I thought an options was to manually go through the phone UI, deleting photo attachments to save space, but I did a bit of this tedium and the storage space did not seem to clear up. Maybe it is delayed? The other alternative is to hit a button that says “only keep messages up to a year old”....

December 9, 2023 · (updated December 10, 2023) · 5 min · 885 words · Michal Piekarczyk