Reworked my mail server to use #go slog for logging, and for a very modest improvement in consistency, it's made the whole thing far more difficult to read. Everything is yucky now.
I can see the appeal if you exclusively process logs in custom tooling, but if you're a look around and grep/awk kind of person, it's not great.
I think I just need to write my own custom output handler, but this is starting to turn into a yak farm unto itself.
Doing the counting problems in chapter 2 of Ogawa & Davies's "The Endgame". I'm getting correct or close to it on most of them, but the thought of doing this under the time pressure of a game, remembering (without pencil and paper) the results of several local searches so I don't have to re-read them every turn, and still having the mental capacity to explore the main tree of play? shudder
I just got bit by a common bug in #Go. encoding/json accepts the null JSON value for a slice. As a result, [] is decoded to an empty slice and null to a nil slice. And while both can be used as a zero-length slice, only one of them will be considered equal to nil. Inconsistent.
Anyone out there standing next to a nerd. I would like you to try a tic tac toe variant and tell me if it's interesting:
Kriegspiel tic tac toe
You can’t see your opponent’s moves. But, if you try to take a space they’re already on, you lose your turn, and the space they’ve taken is revealed. Goal remains 3 in a row.
@ZachWeinersmith When you teach the game of Go to mathy types, they inevitably come up with variations. What if we played on a hex grid instead of a square grid? What if the board was a torus that wrapped around? What if the board was 3D?
At the annual US Go Congress, one of the standard events is "crazy go", which tries out some of these variants.
The most bananapants was Team Kriegspiel Go, involving two teams of two players, plus a referee. On your turn, you submit your move to the referee and find out if it's legal. Not only do you not know your opponent's moves, you don't know half of your own moves!
Careful, do not use the url.URL #Go type in structures if you expect to encode them in JSON. For some incredibly stupid reason, it will be serialized as a JSON object and not as the expected string representation. Forces you to use strings everywhere. So much for type safety…
On Feb 1st, 2024, #Apple released Pkl. Pronounced "pickle", it is a complete configuration scripting language, including a JSON/YAML/XML/more compiler, a language server, bunch of IDE plugins, and of course direct bindings for your favorite programming language, for quick adoption. A #Python binding seems missing.
I like how a Pkl config's specs and values are colocated. Always hated maintaining separate schemas for very simple configs.
@gvrooyen@iw just be glad that it #rust isn’t as popular a word as #go or #puppet or #chef. Maybe the next programming language will be ‘THE’ and freak out all the search engines.
I'm looking for good (backend) developer, or software architecture podcasts for after work, German or English, in the style of the German "todo:cast" or the "INNOQ Podcast". Can anyone here recommend anything interesting? I always run out of episodes so fast 😀
The Weatherflow Tempest thingy I blathered about the other day now has a localStorage-based preferences system (vs. have {fir} manage them) that (for now) allows selection of units for three of the readings.
I was looking for #vscode extensions to help write plain #HTML and #CSS and it's disappointing.
There is an extension that suggests class names it finds in your stylesheets when you are writing HTML. Cool. It works. But it's extremely superficial. It only considers individual class names, so it suggests classes that can't apply to that element.
Just because I'd like to write plain CSS doesn't mean I want to keep my entire stylesheet structure in memory. There is a reason why languages like Go and most others have fantastic language servers. It helps developers work faster and more confidently. When I write #Go sometimes I'm just banging on "ctrl-space" because that's all that's left to do when you have a good lang server.
If you're interested in learning the classical Asian game of Go, widely regarded as the pinnacle of elegant game design, the Portland (Oregon) Go Club is teaching beginners are local libraries:
... consider that #Go and #Rust were both developed nearly exclusively by people working for firms. Yes, dynamic linking and maintenance of stable ABI promises are hard. That
means they cost. But static linking and volatile ABIs also have a cost--an opportunity cost. If that cost is both (1) hard to measure and (2) will be borne by economic actors outside your firm, the obviously rational choice is to not bother with dynamic linking and stable ABIs.
Come work with me! We have a primarily modern PHP 8.2 stack using Mezzio but as an org are diversifying into Go. We also have a fair bit of Python lying around. We run CI/CD and manage our AWS environment using Terraform (though our embedded OPs team member will typically manage that).