gomdn: Yet another Static Site Generator
Yet another Static Site Generator (SSG), but this one is mine.
Itās a stupidly simple Go program ( wc says 229 lines), more like a
hack, really, but I donāt need something like Hugo. Most of the real
work is done by the goldmark package, of course. This is mostly just a
wrapper, deciding if something needs to be rebuilt.
Iāve been using a Perl script together with cmark (originally
Markdown.pl) since forever. And before that the old [txt2tags](htt ⦠ā Read more
Status 2025-07-21
Morning, computer! Spending my days off trying to figure things out.
Some of them will occur in this post. I think best when Iām writing,
after all.
Iām back from a short vacation since a couple of weeks. Iām still
going to take a few days off every week for a while. I need the break.
Itās been way too many 12-16 hour workdays. Iām nominally working 80%
(~6 hour days), so I figure Iāve been working a lot for free.
Yeah, well, I like the TKey project to succeed. The ideas behind it
have implicatio ⦠ā Read more
@bender@twtxt.net That was one of the inputs into my research š§ So thatās already factored in. We bought our new truck (2025 GWM Canon) recently to replace the āol 2nd hand Nissan Navara we bought that just had too many things go wrong with it, and I donāt have time or energy to learn to be a diesel mechanic haha 𤣠ā So yes, the SCT-16 has a Tare (unladen weight) of 2150Kg and a maximum legal (ATM) weight of 2,800Kg.
I think I understand now. Americans do not go camping, we do recreational activities. I donāt think campers are a thing here, but RVs (Recreational Vehicles) are. Thatās why it would never cross my mind to get anything with fabric, that folds. No mate, we get a house on wheels, with a million miles engine. š¤£
Other than that, it looks nice!
HTTP referrers are quite broken, arenāt they?
Because of that recent storm on my blog, I had a peek at them. Thereās a lot of garbage in there. For example, https://docs.freebsd.org/en/books/handbook/disks-virtual.html is supposed to refer to one of my blog posts ā¦
Whatās going on here?
We covered quite some ground in the two and a half hours today. The weather was nice, mostly cloudy and just 23°C. Thatās also why we decided to take a longer tour. We saw four deer in the wild, three of which I managed to just ban on film, quality could be better, though. My camera produced a hell lot of defocused photos this time. Not sure whatās going on with the autofocus. https://lyse.isobeef.org/waldspaziergang-2025-07-10/
When the sun came out, colors were just beautiful:

@prologic@twtxt.net Hm, I wouldnāt say that. Go code could fall into that category as well.
Maybe this topic could use a blog post / article, that explains what itās about. Iām finding it hard to really define what āsuckless-like softwareā is. š¤ (Their own philosophy focuses too much on elitism, if you ask me.)
@movq@www.uninformativ.de So you wouldn;t consider things written in Go to be āsucklessā-esque? š¤
Iāve been playing around with AI at home over the past few months and building my own neural networks from scratch (in Go) with genetic algorithms
Oh, is that all š¤£
That sounds like some intensive āplaying aroundā haha
@eldersnake@we.loveprivacy.club Yeah for sure! The thing that annoys me about a lot of this, is the sheer fact you canāt really self-host let alone self-train these things Iāve been playing around with AI at home over the past few months and building my own neural networks from scratch (in Go) with genetic algorithms on a few tasks and training sets, but man itās hard⢠𤣠I feel like weāre doing something wrong hereā¦
In all fairness, GOG says that Forsaken is only supported on Ubuntu 16.04 ā not current Arch Linux. If you ask me, this just goes to show that Linux is not a good platform for proprietary binary software.
Is it free software, do you have the source code? Then youāre good to go, things can be patched/updated (that can still be a lot of work). But proprietary binary blobs? Very bad idea.
went to vote. got told i canāt vote because iām not registered. handed a form to fill out that i later learn is not in english.
go home and find out the problem is widespread among young voters like me.
fuck this country.
think iām gonna use this license on my git repos going forward. it kicks ass https://anticapitalist.software/
Option and error handling. (Or the more complex Result, but itās easier to explain with Option.)
@prologic@twtxt.net Iād say: Yes, because in Go itās easier to ignore errors.
Weāre talking about this pattern, right?
f, err := os.Open("filename.ext")
if err != nil {
log.Fatal(err)
}
Nothing stops you from leaving out the if, right? š¤
Option and error handling. (Or the more complex Result, but itās easier to explain with Option.)
@movq@www.uninformativ.de Is this much different to Goās error handling as values though really? š§š¤£š
@movq@www.uninformativ.de neither do I š and Iām going full Albert Camus mode. Embracing the Absurdism of life just to cope, itās the only choice I have left.
FFS! Canāt I just get results, accurate no BS results? No erroneous/misleading AI-Slop of a summary Iāve never asked for ? I get it, there is plenty of people who LOooove (if not worship) that shit, Good for them! But at least make it opt-in or add in some kind of āDo Not Slopā browser option (as if the āDo Not Trackā one made a difference, but I digress). Shitās only going down-hill from here, I might as well as just spin up my own Searx instance and call it a day.
@prologic@twtxt.net Iām trying to call some libc functions (because the Rust stdlib does not have an equivalent for getpeername(), for example, so I donāt have a choice), so I have to do some FFI stuff and deal with raw pointers and all that, which is very gnarly in Rust ā because youāre not supposed to do this. Things like that are trivial in C or even Assembler, but I have not yet understood what Rust does under the hood. How and when does it allocate or free memory ⦠is the pointer that I get even still valid by the time I do the libc call? Stuff like that.
I hope that I eventually learn this over time ⦠but I get slapped in the face at every step. Itās very frustrating and Iām always this š¤ close to giving up (only to try again a year later).
Oh, yeah, yeah, I guess I could ājustā use some 3rd party library for this. socket2 gets mentioned a lot in this context. But I donāt want to. I literally need one getpeername() call during the lifetime of my program, I donāt even do the socket(), bind(), listen(), accept() dance, I already have a fully functional file descriptor. Using a library for that is total overkill and Iād rather do it myself. (And look at the version number: 0.5.10. The library is 6 years old but theyāre still saying: āNah, weāre not 1.0 yet, we reserve the right to make breaking changes with every new release.ā So many Rust libs are still unstable ā¦)
⦠and I could go on and on and on ⦠š¤£
@bmallred@staystrong.run Ahhh this is an agent Iām tryining to play the game of Connect3. It uses a library written in Go Iāve been working on that supports Neuroevolution using Genetic Algorithms. Some features include: Mutation, Speciation, Lamarckian Evolution/Inheritence.
On my blog: Go Nowhere Fast https://john.colagioia.net/blog/2025/06/15/go-nowhere-fast.html #harm #rant #politics #harm
@lyse@lyse.isobeef.org Rust is so different and, at the same time, so complex ā itās not far fetched to assume that I simply donāt understand whatās going on here. The docs appear to be clear, but alas ⦠is it a bugs in the docs? Is it a lack of experience on my part? Who knows.
By the way, looks like there was a bit of a discussion regarding that name:
Hmmm š§ Not what I thought was going on⦠No bugā¦
time="2025-06-14T15:24:25Z" level=info msg="updating feeds for 8 users"
time="2025-06-14T15:24:25Z" level=info msg="skipping 0 inactive users"
time="2025-06-14T15:24:25Z" level=info msg="skipping 0 subscribed feeds"
time="2025-06-14T15:24:25Z" level=info msg="updating 80 sources (stale feeds)"
@bender@twtxt.net there you go, it shows just fine on the souris instance
āDystopian tales of that time when I sold out to Googleā
If you ever wanted to know what it was like to be an engineer at Google during the early to late 2000s, here you go. Now even though Google is fundamentally a spyware advertising company (some 80% of its revenue is advertising; the proportion was even higher back then), we Engineers were kept carefully away from that reality, as much as meat eaters are kept away from videos of the meat industry: donāt think about it, jus ⦠ā Read more
Red Hat & FreeDesktop Go Into Mass Censorship Mode over Xorg Fork, Bans Dev
Immediately following news of the Xorg fork (Libre), the developer was banned by FreeDesktop and Red Hat mass closed hundreds of past Xorg merge requests. ā Read more
Windows 7: a 2025 perspective (rose-tinted or not)
Quite often, I wonder how much nostalgia plays part in our perception of past events. Luckily, with software, you can go ābackā and retest it, and so thereās no need for any illusions and misconceptions. To wit, I decided to reinstall and try Windows 7 again (as a virtual machine, but still), to see whether my impressions of the dross we call āmodernā software today are justified. ā« Igor Ljubuncic The conclusion is that, yes, you can ⦠ā Read more
What next after vibe coding
One interesting possible future of the emergence of āvibe codingā as common terminology is the possibility to position an alternative.
āReal codingā?
Future think pieces:
āYou can get yourself up and running quickly with āvibe codingā but when you get traction youāre going to want have people doing āreal codingāā
āswitching from vibe coding to real coding will typically cost you X% of you initial development, so donāt put off switching too lateā
[Comments](https://lobste.rs/s/m ⦠ā Read more
Whatās your go-to message queue in 2025?
The space is confusing to say the least.
Message queues are usually a core part of any distributed architecture, and the options are endless:
Kafka, RabbitMQ, Redis {Pub-Sub, Streams}, Cloud Providers {AWS SQS, Kinesis; Google Pub/Sub; Azure Event Hubs, Service Bus}, Pulsar, ZeroMQ⦠and then thereās the ājust use Postgresā camp for simpler use cases.
Iām trying to make sense of the tradeoffs between:
- async fire-and-forget pub/sub vs. sync RPC-like point ⦠ā Read more
[ On | No ] syntactic support for error handling - The Go Programming Language
Comments ā Read more
When I chose the MIT license for all of my software, I thought:
āShould I use GPL, which I donāt really understand? Is that worth it? Yeah, there is a theoretical possibility that some company might use my code in their proprietary product ⦠and then what? Should I sue them to enforce the GPL? Iām not going to do that anyway, so Iāll just use the MIT license.ā
And now we have those LLM scrapers and now itās suddenly a reality that these companies (ab)use my code. I can see it in my logs. I didnāt expect that back then.
GPL wouldnāt help, either, of course. (Regardless, I now think that GPL would have been the better choice anyway.)
Iām honestly considering taking my code and website offline. Maybe make it accessible through some obscure protocol like Gopher or Gemini, but no more HTTP.
(Yes, Anubis might help. Temporarily.)
Iām just tired.
My sweet baby girl passed away 2 weeks ago - everyone please go hug your cats, they are only here for so long and they go so suddenly ā Read more
Harpoom: of course the Apple Network Server can be hacked into running Doom
Of course you can run Doom on a $10,000+ Apple server running IBM AIX. Of course you can. Well, you can now. Now, letās go ahead and get the grumbling out of the way. No, the ANS is not running Linux or NetBSD. No, this is not a backport of NCommanderās AIX Doom, because that runs on AIX 4.3. The Apple Network Server could run no version of AIX later than 4.1.5 and there are substan ⦠ā Read more
Happy one year post cancer diagnosis!! and going strong!! ā Read more
@quark@ferengi.one Ah, I see. Hm, only problem is, IE 3 doesnāt seem to support this yet. š Nah, I donāt think Iāll go down that road ā seems like a slippery slope. š¤£
prologic@JamessMacStudio
Sun May 25 21:44:41
~/tmp/neurog
(main) 130
$ go build ./cmd/ttt/... && ./ttt
Generation 27 | Fitness: 0.486111 | Nodes: 44 | Conns: 82
⦠experimenting with building and training a tic-tac-toe game, which evolves a. neural net that learn to paly the game against the best evolved champions š
10 Games Milked for All Their Worth
Sticking with what works is nothing new, especially in gaming. New stories, characters, and mechanics are increasingly rare. Long development times and ballooning budgets only compound the issue, as studios must take a larger gamble with every project. Why take that risk when going with a guaranteed success is safer? That mindset prompts developers to [ā¦]
The post [10 Games Milked for All Their Worth](https://listverse.com/2025/05/25/10-games-milked-for-all-th ⦠ā Read more
@prologic@twtxt.net I remember going through your āintroduction to Golangā, I donāt remember the URL, but I vividly remember going through it, and I was lost at chapter one. So, about that āmasteringā the core in hours, āI donāt believe you.ā (insert I donāt believe you meme animated GIF here). LOL.
Ultimately, Go sits in the sweet spot on the complexity vs performance chart:
- Minimal syntax & concepts ā low learning curve
- Compiled speed ā high throughput
- Built-in CSP concurrency ā scalable by default
See Rob Pykeās presentation on Expressiveness of Go
One of the nicest things about Go is the language itself, comparing Go to other popular languages in terms of the complexity to learn to be proficient in:
- Go:
25keywords (Stack Overflow); CSP-style concurrency (goroutines & channels)
- Python 2:
30keywords (TutorialsPoint); GIL-bound threads & multiprocessing (Wikipedia)
- Python 3:
35keywords (Initial Commit); GIL-bound threads,asyncio& multiprocessing (Wikipedia, DEV Community)
- Java:
50keywords (Stack Overflow); threads +java.util.concurrent(Wikipedia)
- C++:
82keywords (Stack Overflow);std::thread, atomics & futures (en.cppreference.com)
- JavaScript:
38keywords (Stack Overflow); single-threaded event loop &async/await, Web Workers (Wikipedia)
- Ruby:
42keywords (Stack Overflow); GIL-bound threads (MRI), fibers & processes (Wikipedia)
@bender@twtxt.net Hereās a short-list:
- Simple, minimal syntaxāmaster the core in hours, not months.
- CSP-style concurrency (goroutines & channels)āsafe, scalable parallelism.
- Blazing-fast compiler & single-binary deploysāzero runtime dependencies.
- Rich stdlib & built-in tooling (gofmt, go test, modules).
- No heavy frameworks or hidden magicāunlike Java/C++/Python overhead.
@kat@yarn.girlonthemoon.xyz I donāt like Golang much either, but I am not a programmer. This little site, Go by example might explain a thing or two.
@movq@www.uninformativ.de i feel like when i read go code iām reading some algebra shit where every part is 1-5 letters long and then thereās weird symbols like := and itās just infinitely harder for me to parse and infer meaning from lol. itās such a me problem
i wish it was realistic for me to learn golang but every single time i try to comprehend any go code iām like What the fuck am i looking at. why is all of this so short and condensed GIVE ME VERBOSE CODE
Goodbye Koeka, Iām going to miss you little girlš. ?-04-2007 - 23-05-2025 ā Read more