summaryrefslogtreecommitdiff
path: root/gemfeed/2025-07-01-posts-from-january-to-june-2025.gmi.tpl
blob: 5e942f1bb6b014d43a5cd953530017d91799b7d3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
# Posts from January to June 2025

> Published at 2025-07-01T22:39:29+03:00

These are my social media posts from the last six months. I keep them here to reflect on them and also to not lose them. Social media networks come and go and are not under my control, but my domain is here to stay. 

These are from Mastodon and LinkedIn. Have a look at my about page for my social media profiles. This list is generated with Gos, my social media platform sharing tool.

=> ../about/index.gmi My about page
=> https://codeberg.org/snonux/gos

<< template::inline::toc

## January 2025

### I am currently binge-listening to the Google ...

I am currently binge-listening to the Google `#SRE` ProdCast. It's really great to learn about the stories of individual SREs and their journeys. It is not just about SREs at Google; there are also external guests.

=> https://sre.google/prodcast/ sre.google/prodcast/

### Recently, there was a >5000 LOC `#bash` ...

Recently, there was a >5000 LOC `#bash` codebase at work that reported the progress of a migration, nobody understood it and it was wonky (sometimes it would not return the desired results). On top of that, the coding style was very bad as well (I could rant forever here). The engineer who wrote it left the company. I rewrote it in `#Perl` in about 300 LOC. Colleagues asked why not Python. Perl is the perfect choice here—it's even in its name: Practical Extraction and Report Language!

### Ghostty is a terminal emulator that was ...

Ghostty is a terminal emulator that was recently released publicly as open-source. I love that it works natively on both Linux and macOS; it looks great (font rendering) and is fast and customizable via a config file (which I manage with a config mng system). Ghostty is a passion project written in Zig, the author loved the community so much while working on it that he donated $300k to the Zig Foundation. `#terminal` `#emulator`

=> https://ghostty.org ghostty.org

### Go is not an easy programming language. Don't ...

Go is not an easy programming language. Don't confuse easy with simple syntax. I'd agree to this. With the recent addition of Generics to the language I also feel that even the syntax stops being simple.. Also, simplicity is complex (especially under the hood how the language works - there are many mechanics you need to know if you really want to master the language). `#golang`

=> https://www.arp242.net/go-easy.html www.arp242.net/go-easy.html

### How will AI change software engineering (or has ...

How will AI change software engineering (or has it already)? The bottom line is that less experienced engineers may have problems (accepting incomplete or incorrect programs, only reaching 70 percent solutions), while experienced engineers can leverage AI to boost their performance as they know how to fix the remaining 30 percent of the generated code. `#ai` `#engineering` `#software`

=> https://newsletter.pragmaticengineer.com/p/how-ai-will-change-software-engineering newsletter.pragmaticengineer.com/p/how-ai-will-change-software-engineering

### Eliminating toil - Toil is not always a bad ...

Eliminating toil - Toil is not always a bad thing - some even enjoy toil - it is calming in small amounts - but it becomes toxic in large amounts - `#SRE`

=> https://sre.google/sre-book/eliminating-toil/ sre.google/sre-book/eliminating-toil/

### Fun read. How about using the character ...

Fun read. How about using the character sequence :-) as a statement separator in a programming language?

=> https://ntietz.com/blog/researching-why-we-use-semicolons-as-statement-terminators/ ntietz.com/blog/researching-why-we-use-semicolons-as-statement-terminators/

### Thats unexpected, you cant remove a NaN key ...

Thats unexpected, you cant remove a NaN key from a map without clearing it! `#golang` via @wallabagapp

=> https://unexpected-go.com/you-cant-remove-a-nan-key-from-a-map-without-clearing-it.html unexpected-go.com/you-cant-remove-a-nan-key-from-a-map-without-clearing-it.html

### Nice refresher for `#shell` `#bash` `#zsh` ...

Nice refresher for `#shell` `#bash` `#zsh` redirection rules

=> https://rednafi.com/misc/shell_redirection/ rednafi.com/misc/shell_redirection/

### I think discussing action items in incident ...

I think discussing action items in incident reviews is important. At least the obvious should be captured and noted down. It does not mean that the action items need to be fully refined in the review meeting; that would be out of scope, in my opinion.

=> https://surfingcomplexity.blog/2024/09/28/why-i-dont-like-discussing-action-items-during-incident-reviews/ surfingcomplexity.blog/2024/09/28/why-..-..-action-items-during-incident-reviews/

### At first, functional options add a bit of ...

At first, functional options add a bit of boilerplate, but they turn out to be quite neat, especially when you have very long parameter lists that need to be made neat and tidy. `#golang`

=> https://www.calhoun.io/using-functional-options-instead-of-method-chaining-in-go/ www.calhoun.io/using-functional-options-instead-of-method-chaining-in-go/

### In the "Working with an SRE Interview" I have ...

In the "Working with an SRE Interview" I have been askd about what it's like working with an SRE! We'd covered much more in depth, but we decided not to make it too long in the final version! `#sre` `#interview`

=> gemini://foo.zone/gemfeed/2025-01-15-working-with-an-sre-interview.gmi foo.zone/gemfeed/2025-01-15-working-with-an-sre-interview.gmi (Gemini)
=> https://foo.zone/gemfeed/2025-01-15-working-with-an-sre-interview.html foo.zone/gemfeed/2025-01-15-working-with-an-sre-interview.html

### Small introduction to the `#Android` ...

Small introduction to the `#Android` distribution called `#GrapheneOS` For myself, I am using a Pixel 7 Pro, which comes with "only" 5 years of support (not yet 7 years like the Pixel 8 and 9 series). I also wrote about GrapheneOS here once:

=> https://dataswamp.org/~solene/2025-01-12-intro-to-grapheneos.html dataswamp.org/~solene/2025-01-12-intro-to-grapheneos.html
=> gemini://foo.zone/gemfeed/2023-01-23-why-grapheneos-rox.gmi foo.zone/gemfeed/2023-01-23-why-grapheneos-rox.gmi (Gemini)
=> https://foo.zone/gemfeed/2023-01-23-why-grapheneos-rox.html foo.zone/gemfeed/2023-01-23-why-grapheneos-rox.html

### Helix 2025.01 has been released. The completion ...

Helix 2025.01 has been released. The completion of path names and the snippet functionality will be particularly useful for me. Overall, it's a great release. The release notes cover only some highlights, but there are many more changes in this version so also have a look at the Changelog! `#HelixEditor`

=> https://helix-editor.com/news/release-25-01-highlights/ helix-editor.com/news/release-25-01-highlights/

### I found these are excellent examples of how ...

I found these are excellent examples of how `#OpenBSD`'s `#relayd` can be used.

=> https://www.tumfatig.net/2023/using-openbsd-relayd8-as-an-application-layer-gateway/ www.tumfatig.net/2023/using-openbsd-relayd8-as-an-application-layer-gateway/

### LLMs for Ops? Summaries of logs, probabilities ...

LLMs for Ops? Summaries of logs, probabilities about correctness, auto-generating Ansible, some uses cases are there. Wouldn't trust it fully, though.

=> https://youtu.be/WodaffxVq-E?si=noY0egrfl5izCSQI youtu.be/WodaffxVq-E?si=noY0egrfl5izCSQI

### Enjoying an APC Power-UPS BX750MI in my ...

Enjoying an APC Power-UPS BX750MI in my `#homelab` with `#FreeBSD` and apcupsd. I can easily use the UPS status to auto-shutdown a cluster of FreeBSD machines on a power cut. One FreeBSD machine acts as the apcupsd master, connected via USB to the APC, while the remaining machines read the status remotely via the apcupsd network port from the master. However, it won't work when the master is down. `#APC` `#UPS`

### "Even in the projects where I'm the only ...

"Even in the projects where I'm the only person, there are at least three people involved: past me, present me, and future me." - Quote from `#software` `#programming`

=> https://liw.fi/40/#index1h1 liw.fi/40/#index1h1

### Connecting an `#UPS` to my `#FreeBSD` cluster ...

Connecting an `#UPS` to my `#FreeBSD` cluster in my `#homelab`, protecting it from power cuts!

=> gemini://foo.zone/gemfeed/2025-02-01-f3s-kubernetes-with-freebsd-part-3.gmi foo.zone/gemfeed/2025-02-01-f3s-kubernetes-with-freebsd-part-3.gmi (Gemini)
=> https://foo.zone/gemfeed/2025-02-01-f3s-kubernetes-with-freebsd-part-3.html foo.zone/gemfeed/2025-02-01-f3s-kubernetes-with-freebsd-part-3.html

### So, the Co-founder and CTO of honeycomb.io and ...

So, the Co-founder and CTO of honeycomb.io and author of the book Observability Engineering always hated observability. And Distinguished Software Engineer and The Pragmatic Engineer host can't pronounce the word Observability. :-) No, jokes aside, I liked this podcast episode of The Pragmatic Engineer: Observability: the present and future, with Charity Majors `#sre` `#observability`

=> https://newsletter.pragmaticengineer.com/p/observability-the-present-and-future newsletter.pragmaticengineer.com/p/observability-the-present-and-future

## February 2025

### I don't know about you, but at work, I usually ...

I don't know about you, but at work, I usually deal with complex setups involving thousands of servers and work in a complex hybrid microservices-based environment (cloud and on-prem), where homelabbing (as simple as described in my blog post) is really relaxing and recreative. So, I was homelabbing a bit again, securing my `#FreeBSD` cluster from power cuts. `#UPS` `#recreative`

=> gemini://foo.zone/gemfeed/2025-02-01-f3s-kubernetes-with-freebsd-part-3.gmi foo.zone/gemfeed/2025-02-01-f3s-kubernetes-with-freebsd-part-3.gmi (Gemini)
=> https://foo.zone/gemfeed/2025-02-01-f3s-kubernetes-with-freebsd-part-3.html foo.zone/gemfeed/2025-02-01-f3s-kubernetes-with-freebsd-part-3.html

### Great proposal (got accepted by the Goteam) for ...

Great proposal (got accepted by the Goteam) for safer file system open functions `#golang`

=> https://github.com/golang/go/issues/67002 github.com/golang/go/issues/67002

### My Gemtexter has only 1320 LOC.... The Biggest ...

My Gemtexter has only 1320 LOC.... The Biggest Shell Programs in the World are huuuge... `#shell` `#sh`

=> https://github.com/oils-for-unix/oils/wiki/The-Biggest-Shell-Programs-in-the-World github.com/oils-for-unix/oils/wiki/The-Biggest-Shell-Programs-in-the-World

### Against /tmp - He is making a point `#unix` ...

Against /tmp - He is making a point `#unix` `#linux` `#bsd` `#filesystem` via @wallabagapp

=> https://dotat.at/@/2024-10-22-tmp.html dotat.at/@/2024-10-22-tmp.html

### Random Weird Things Part 2: `#blog` ...

Random Weird Things Part 2: `#blog` `#computing`

=> gemini://foo.zone/gemfeed/2025-02-08-random-weird-things-ii.gmi foo.zone/gemfeed/2025-02-08-random-weird-things-ii.gmi (Gemini)
=> https://foo.zone/gemfeed/2025-02-08-random-weird-things-ii.html foo.zone/gemfeed/2025-02-08-random-weird-things-ii.html

### As a former `#Pebble` user and fan, thats ...

As a former `#Pebble` user and fan, thats aweaome news. PebbleOS is now open source and there will aoon be a new watch. I don't know about you, but I will be the first getting one :-) `#foss`

=> https://ericmigi.com/blog/why-were-bringing-pebble-back ericmigi.com/blog/why-were-bringing-pebble-back

### I think I am slowly getting the point of Cue. ...

I think I am slowly getting the point of Cue. For example, it can replace both a JSON file and a JSON Schema. Furthermore, you can convert it from and into different formats (Cue, JSON, YAML, Go data types, ...), and you can nicely embed this into a Go project as well. `#cue` `#cuelang` `#golang` `#configuration`

=> https://cuelang.org cuelang.org

### Jonathan's reflection of 10 years of ...

Jonathan's reflection of 10 years of programming!

=> https://jonathan-frere.com/posts/10-years-of-programming/ jonathan-frere.com/posts/10-years-of-programming/

### Really enjoyed reading this. Easily digestible ...

Really enjoyed reading this. Easily digestible summary of what's new in Go 1.24. `#golang`

=> https://antonz.org/go-1-24/ antonz.org/go-1-24/

### Some great advice from 40 years of experience ...

Some great advice from 40 years of experience as a software developer. `#software` `#development`

=> https://liw.fi/40/#index1h1 liw.fi/40/#index1h1

### I enjoyed this talk, some recipes I knew ...

I enjoyed this talk, some recipes I knew already, others were new to me. The "line of sight" is my favourite, which I always tend to follow. I also liked the example where the speaker simplified a "complex" nested functions into two not-nested-if-statements. `#golang`

=> https://www.youtube.com/watch?v=zdKHq9Xo4OY&list=WL&index=5 www.youtube.com/watch?v=zdKHq9Xo4OY&list=WL&index=5

### A way of how to add the version info to the Go ...

A way of how to add the version info to the Go binary. ... I personally just hardcode the version number in version.go and update it there manually for each release. But with Go 1.24, I will try embedding it! `#golang`

=> https://jerrynsh.com/3-easy-ways-to-add-version-flag-in-go/ jerrynsh.com/3-easy-ways-to-add-version-flag-in-go/

### In other words, using t.Parallel() for ...

In other words, using t.Parallel() for lightweight unit tests will likely make them slower.... `#golang`

=> https://threedots.tech/post/go-test-parallelism/ threedots.tech/post/go-test-parallelism/

### Neat little blog post, showcasing various ...

Neat little blog post, showcasing various methods unsed for generic programming before of the introduction of generics. Only reflection wasn't listed. `#golang`

=> https://bitfieldconsulting.com/posts/generics bitfieldconsulting.com/posts/generics

### The smallest thing in Go `#golang` ...

The smallest thing in Go `#golang`

=> https://bitfieldconsulting.com/posts/iota bitfieldconsulting.com/posts/iota

### Fun with defer in `#golang`, I did't know, that ...

Fun with defer in `#golang`, I did't know, that a defer object can either be heap or stack allocated. And there are some rules for inlining, too.

=> https://victoriametrics.com/blog/defer-in-go/ victoriametrics.com/blog/defer-in-go/

### What I like about Go is that it is still ...

What I like about Go is that it is still possible to understand what's going on under the hood, whereas in JVM-based languages (for example) or dynamic languages, there are too many optimizations and abstractions. However, you don't need to know too much about how it works under the hood in Go (like memory management in C). It's just the fact that you can—you have a choice. `#golang`

=> https://blog.devtrovert.com/p/goroutine-scheduler-revealed-youll blog.devtrovert.com/p/goroutine-scheduler-revealed-youll

## March 2025

### Television has somewhat transformed how I work ...

Television has somewhat transformed how I work in the shell on a day-to-day basis. It is especially useful for me in navigating all the local Git repositories on my laptop. I have bound Ctrl+G in my shell for that now. `#television` `#tv` `#tool` `#shell`

=> https://github.com/alexpasmantier/television github.com/alexpasmantier/television

### Once in a while, I like to read a book about a ...

Once in a while, I like to read a book about a programming language I have been using for a while to find new tricks or to refresh and sharpen my knowledge about it. I just finished reading "Programming Ruby 3.3," and I must say this is my favorite Ruby book now. What makes this one so special is that it is quite recent and covers all the new features. `#ruby` `#programming` `#coding`

=> https://pragprog.com/titles/ruby5/programming-ruby-3-3-5th-edition/ pragprog.com/titles/ruby5/programming-ruby-3-3-5th-edition/

### As you may have noticed, I like to share on ...

As you may have noticed, I like to share on Mastodon and LinkedIn all the technical things I find interesting, and this blog post is technically all about that. Having said that, I love these tiny side projects. They are so relaxing to work on! `#gos` `#golang` `#tool` `#programming` `#fun`

=> gemini://foo.zone/gemfeed/2025-03-05-sharing-on-social-media-with-gos.gmi foo.zone/gemfeed/2025-03-05-sharing-on-social-media-with-gos.gmi (Gemini)
=> https://foo.zone/gemfeed/2025-03-05-sharing-on-social-media-with-gos.html foo.zone/gemfeed/2025-03-05-sharing-on-social-media-with-gos.html

### Personally, I think AI (LLMs) are pretty ...

Personally, I think AI (LLMs) are pretty useful. But there's really some Hype around that. However, AI is about to stay - its not all hype

=> https://unixdigest.com/articles/i-passionately-hate-hype-especially-the-ai-hype.html unixdigest.com/articles/i-passionately-hate-hype-especially-the-ai-hype.html

### Type aliases in `#golang`, soon also work with ...

Type aliases in `#golang`, soon also work with generics. It's an interesting feature, useful for refactorings and simplifications

=> https://go.dev/blog/alias-names go.dev/blog/alias-names

### `#Perl`, my "first love" of programming ...

`#Perl`, my "first love" of programming languages. Still there, still use it here and then (but not as my primary language at the moment). And others do so as well, apparently. Which makes me happy! :-)

=> https://dev.to/fa5tworm/why-perl-remains-indispensable-in-the-age-of-modern-programming-languages-2io0 dev.to/fa5tworm/why-perl-remains-indis..-..e-of-modern-programming-languages-2io0

### I guess there are valid reasons for phttpdget, ...

I guess there are valid reasons for phttpdget, which I also don't know about? Maybe complexity and/or licensing of other tools. `#FreeBSD`

=> https://l33t.codes/2024/12/05/Updating-FreeBSD-and-Re-Inventing-the-Wheel/ l33t.codes/2024/12/05/Updating-FreeBSD-and-Re-Inventing-the-Wheel/

### This is one of the reasons why I like ...

This is one of the reasons why I like terminal-based applications so much—they are usually more lightweight than GUI-based ones (and also more flexible).

=> https://www.arp242.net/stupid-light.html www.arp242.net/stupid-light.html

### Advanced Concurrency Patterns with `#Golang` ...

Advanced Concurrency Patterns with `#Golang`

=> https://blogtitle.github.io/go-advanced-concurrency-patterns-part-1/ blogtitle.github.io/go-advanced-concurrency-patterns-part-1/

### `#SQLite` was designed as an `#TCL` extension. ...

`#SQLite` was designed as an `#TCL` extension. There are ~trillion SQLite databases in active use. SQLite heavily relies on `#TCL`: C code generation via mksqlite3c.tcl, C code isn't edited directly by the SQLite developers, and for testing , and for doc generation). The devs use a custom editor written in Tcl/Tk called "e" to edit the source! There's a custom versioning system Fossil, a custom chat-room written in Tcl/Tk!

=> https://www.tcl-lang.org/community/tcl2017/assets/talk93/Paper.html www.tcl-lang.org/community/tcl2017/assets/talk93/Paper.html

### Git provides automatic rendering of Markdown ...

Git provides automatic rendering of Markdown files, including README.md, in a repository’s root directory" .... so much junk now in LLM powered search engines.... `#llm` `#ai`

### These are some neat little Go tips. Linters ...

These are some neat little Go tips. Linters already tell you when you silently omit a function return value, though. The slice filter without allocation trick is nice and simple. And I agree that switch statements are preferable to if-else statements. `#golang`

=> https://blog.devtrovert.com/p/go-ep5-avoid-contextbackground-make blog.devtrovert.com/p/go-ep5-avoid-contextbackground-make

### This is a great introductory blog post about ...

This is a great introductory blog post about the Helix modal editor. It's also been my first choice for over a year now. I am really looking forward to the Steel plugin system, though. I don't think I need a lot of plugins, but one or two would certainly be on my wish list. `#HelixEditor` `#Helix`

=> https://felix-knorr.net/posts/2025-03-16-helix-review.html felix-knorr.net/posts/2025-03-16-helix-review.html

### Maps in Go under the hood `#golang` ...

Maps in Go under the hood `#golang`

=> https://victoriametrics.com/blog/go-map/ victoriametrics.com/blog/go-map/

### I found that working on multiple side projects ...

I found that working on multiple side projects concurrently is better than concentrating on just one. This seems inefficient, but if you to lose motivation, you can temporarily switch to another one with full élan. Remember to stop starting and start finishing. This doesn't mean you should be working on 10+ side projects concurrently! Select your projects and commit to finishing them before starting the next thing. For example, my current limit of concurrent side projects is around five.

### I have been in incidents. Understandably, ...

I have been in incidents. Understandably, everyone wants the issue to be resolved as quickly and others want to know how long TTR will be. IMHO, providing no estimates at all is no solution either. So maybe give a rough estimate but clearly communicate that the estimate is rough and that X, Y, and Z can interfere, meaning there is a chance it will take longer to resolve the incident. Just my thought. What's yours?

=> https://firehydrant.com/blog/hot-take-dont-provide-incident-resolution-estimates/ firehydrant.com/blog/hot-take-dont-provide-incident-resolution-estimates/

### I dont understand what it is. Certificates are ...

I dont understand what it is. Certificates are so easy to monitor but still, expirations cause so many incidents. `#sre`

=> https://securityboulevard.com/2024/10/dont-let-an-expired-certificate-cause-critical-downtime-prevent-outages-with-a-smart-clm/ securityboulevard.com/2024/10/dont-let..-..time-prevent-outages-with-a-smart-clm/

### Don't just blindly trust LLMs. I recently ...

Don't just blindly trust LLMs. I recently trusted an LLM, spent 1 hour debugging, and ultimately had to verify my assumption about `fcntl` behavior regarding inherited file descriptors in child processes manually with a C program, as the manual page wasn't clear to me. I could have done that immediately and I would have been done within 10 minutes. `#productivity` `#loss` `#llm` `#programming` `#C`

## April 2025

### I knew about any being equivalent to ...

I knew about any being equivalent to interface{} in `#Golang`, but wasn't aware, that it was introduced to Go because of the generics.

### Neat summary of new `#Perl` features per ...

Neat summary of new `#Perl` features per release

=> https://sheet.shiar.nl/perl sheet.shiar.nl/perl

### errors.As() checks for the error type, whereas ...

errors.As() checks for the error type, whereas errors.Is() checks for the exact error value. Interesting read about Errors in `#golang` - and there is also a cat meme in the middle of the blog post! And then, it continues with pointers to pointers to error values or how about a pointer to an empty interface?

=> https://adrianlarion.com/golang-error-handling-demystified-errors-is-errors-as-errors-unwrap-custom-errors-and-more/ adrianlarion.com/golang-error-handling..-..-errors-unwrap-custom-errors-and-more/

### Good stuff: 10 years of functional options and ...

Good stuff: 10 years of functional options and key lessons Learned along the way `#golang`

=> https://www.bytesizego.com/blog/10-years-functional-options-golang www.bytesizego.com/blog/10-years-functional-options-golang

### I had some fun with `#FreeBSD`, `#Bhyve` and ...

I had some fun with `#FreeBSD`, `#Bhyve` and `#Rocky` `#Linux`. Not just for fun, also for science and profit! `#homelab` `#selfhosting` `#self`-hosting

=> gemini://foo.zone/gemfeed/2025-04-05-f3s-kubernetes-with-freebsd-part-4.gmi foo.zone/gemfeed/2025-04-05-f3s-kubernetes-with-freebsd-part-4.gmi (Gemini)
=> https://foo.zone/gemfeed/2025-04-05-f3s-kubernetes-with-freebsd-part-4.html foo.zone/gemfeed/2025-04-05-f3s-kubernetes-with-freebsd-part-4.html

### The moment your blog receives PRs for typo ...

The moment your blog receives PRs for typo corrections, you notice, that people are actually reading and care about your stuff :-) `#blog` `#personal` `#tech`

### One thing not mentioned is that `#OpenRsync`'s ...

One thing not mentioned is that `#OpenRsync`'s origin is the `#OpenBSD` project (at least as far as I am aware! Correct me if I am wrong :-) )! `#openbsd` `#rsync` `#macos` `#openrsync`

=> https://derflounder.wordpress.com/2025/04/06/rsync-replaced-with-openrsync-on-macos-sequoia/ derflounder.wordpress.com/2025/04/06/r..-..laced-with-openrsync-on-macos-sequoia/

### This is an interesting `#Elixir` pipes operator ...

This is an interesting `#Elixir` pipes operator experiment in `#Ruby`. `#Python` has also been experimenting with such an operator. Raku (not mentioned in the linked article) already has the `==>` sequence operator, of course (which can also can be used backwards `<==` - who has doubted? :-) ). `#syntax` `#codegolf` `#fun` `#coding` `#RakuLang`

=> https://zverok.space/blog/2024-11-16-elixir-pipes.html zverok.space/blog/2024-11-16-elixir-pipes.html

### The story of how my favorite `#Golang` book was ...

The story of how my favorite `#Golang` book was written:

=> https://www.thecoder.cafe/p/100-go-mistakes www.thecoder.cafe/p/100-go-mistakes

### These are my personal book notes from Daniel ...

These are my personal book notes from Daniel Pink's "When: The Scientific Secrets of Perfect Timing." The notes are for me (to improve happiness and productivity). You still need to read the whole book to get your own insights, but maybe the notes will be useful for you as well. `#blog` `#book` `#booknotes` `#productivity`

=> gemini://foo.zone/gemfeed/2025-04-19-when-book-notes.gmi foo.zone/gemfeed/2025-04-19-when-book-notes.gmi (Gemini)
=> https://foo.zone/gemfeed/2025-04-19-when-book-notes.html foo.zone/gemfeed/2025-04-19-when-book-notes.html

### I certainly learned a lot reading this `#llm` ...

I certainly learned a lot reading this `#llm` `#coding` `#programming`

=> https://simonwillison.net/2025/Mar/11/using-llms-for-code/ simonwillison.net/2025/Mar/11/using-llms-for-code/

### Writing indempotent `#Bash` scripts ...

Writing indempotent `#Bash` scripts

=> https://arslan.io/2019/07/03/how-to-write-idempotent-bash-scripts/ arslan.io/2019/07/03/how-to-write-idempotent-bash-scripts/

### Regarding `#AI` for code generation. You should ...

Regarding `#AI` for code generation. You should be at least a bit curious and exleriement a bit. You don't have to use it if you don't see fit purpose.

=> https://registerspill.thorstenball.com/p/they-all-use-it?publication_id=1543843&post_id=151910861&isFreemail=true&r=2n9ive&triedRedirect=true registerspill.thorstenball.com/p/they-..-..email=true&r=2n9ive&triedRedirect=true

### I like the Rocky metaphor. And this post also ...

I like the Rocky metaphor. And this post also reflects my thoughts on coding. `#llm` `#ai` `#software`

=> https://cekrem.github.io/posts/coding-as-craft-going-back-to-the-old-gym/ cekrem.github.io/posts/coding-as-craft-going-back-to-the-old-gym/

## May 2025

### There's now also a `#Fish` shell edition of my ...

There's now also a `#Fish` shell edition of my `#tmux` helper scripts: `#fishshell`

=> gemini://foo.zone/gemfeed/2025-05-02-terminal-multiplexing-with-tmux-fish-edition.gmi foo.zone/gemfeed/2025-05-02-terminal-multiplexing-with-tmux-fish-edition.gmi (Gemini)
=> https://foo.zone/gemfeed/2025-05-02-terminal-multiplexing-with-tmux-fish-edition.html foo.zone/gemfeed/2025-05-02-terminal-multiplexing-with-tmux-fish-edition.html

### I loved this talk. It's about how you can ...

I loved this talk. It's about how you can create your own `#Linux` `#container` without Docker, using less than 100 lines of shell code without Docker or Podman and co. - Why is this talk useful? If you understand how `#containers` work "under the hood," it becomes easier to make design decisions, write your own tools, or debug production systems. I also recommend his training courses, of which I visited one once.

=> https://www.youtube.com/watch?v=4RUiVAlJE2w www.youtube.com/watch?v=4RUiVAlJE2w

### Some unexpected `#golang` stuff, ppl say, that ...

Some unexpected `#golang` stuff, ppl say, that Go is a simple language. IMHO the devil is in the details.

=> https://unexpected-go.com/ unexpected-go.com/

### With the advent of AI and LLMs, I have observed ...

With the advent of AI and LLMs, I have observed that being able to type quickly has become even more important for engineers. Previously, fast typing wasn't as crucial when coding, as most of the time was spent thinking or navigating through the code. However, with LLMs, you find yourself typing much more frequently. That's an unexpected personal win for me, as I recently learned fast touch typing: `#llm` `#coding` `#programming`

=> gemini://foo.zone/gemfeed/2024-08-05-typing-127.1-words-per-minute.gmi foo.zone/gemfeed/2024-08-05-typing-127.1-words-per-minute.gmi (Gemini)
=> https://foo.zone/gemfeed/2024-08-05-typing-127.1-words-per-minute.html foo.zone/gemfeed/2024-08-05-typing-127.1-words-per-minute.html

### For science, fun and profit, I set up a ...

For science, fun and profit, I set up a `#WireGuard` mesh network for my `#FreeBSD`, `#OpenBSD`, `#RockyLinux` and `#Kubernetes` `#homelab`: There's also a mesh generator, which I wrote in `#Ruby`. `#k3s` `#linux` `#k8s` `#k3s`

=> gemini://foo.zone/gemfeed/2025-05-11-f3s-kubernetes-with-freebsd-part-5.gmi foo.zone/gemfeed/2025-05-11-f3s-kubernetes-with-freebsd-part-5.gmi (Gemini)
=> https://foo.zone/gemfeed/2025-05-11-f3s-kubernetes-with-freebsd-part-5.html foo.zone/gemfeed/2025-05-11-f3s-kubernetes-with-freebsd-part-5.html

### Ever wondered about the hung task Linux ...

Ever wondered about the hung task Linux messages on a busy server? Every case is unique, and there is no standard approach to debug them, but here it gets a bit demystified: `#linux` `#kernel`

=> https://blog.cloudflare.com/searching-for-the-cause-of-hung-tasks-in-the-linux-kernel/ blog.cloudflare.com/searching-for-the-cause-of-hung-tasks-in-the-linux-kernel/

### A bit of `#fun`: The FORTRAN hating gateway ― ...

A bit of `#fun`: The FORTRAN hating gateway ― Andreas Zwinkau

=> https://beza1e1.tuxen.de/lore/fortran_hating_gateway.html beza1e1.tuxen.de/lore/fortran_hating_gateway.html

### So, Golang was invented while engineers at ...

So, Golang was invented while engineers at Google waited for C++ to compile. Here I am, waiting a long time for Java to compile...

### I couldn't do without here-docs. If they did ...

I couldn't do without here-docs. If they did not exist, I would need to find another field and pursue a career there. `#bash` `#sh` `#shell`

=> https://rednafi.com/misc/heredoc_headache/ rednafi.com/misc/heredoc_headache/

### I started using computers as a kid on MS-DOS ...

I started using computers as a kid on MS-DOS and mainly used Norton Commander to navigate the file system in order to start games. Later, I became more interested in computing in general and switched to Linux, but there was no NC. However, there was GNU Midnight Commander, which I still use regularly to this day. It's absolutely worth checking out, even in the modern day. `#tools` `#opensource`

=> https://en.wikipedia.org/wiki/Midnight_Commander en.wikipedia.org/wiki/Midnight_Commander

### Thats interesting, running `#Android` in ...

Thats interesting, running `#Android` in `#Kubernetes`

=> https://ku.bz/Gs4-wpK5h ku.bz/Gs4-wpK5h

### Before wiping the pre-installed `#Windows` 11 ...

Before wiping the pre-installed `#Windows` 11 Pro on my new Beelink mini PC, I tested `#WSL2` with `#Fedora` `#Linux`. I compiled my pet project, I/O Riot NG (ior), which requires many system libraries, including `#BPF`. I’m impressed—everything works just like on native Fedora, and my tool runs and traces I/O syscalls with BPF out of the box. I might would prefer now Windows over MacOS if I had to chose between those two for work.

=> https://codeberg.org/snonux/ior codeberg.org/snonux/ior

### Some might hate me saying this, but didnt ...

Some might hate me saying this, but didnt `#systemd` solve the problem of a shared /tmp directory by introducing PrivateTmp?? but yes why did it have to go that way...

=> https://www.osnews.com/story/140968/tmp-should-not-exist/ www.osnews.com/story/140968/tmp-should-not-exist/

### Wouldn't still do that, even with 100% test ...

Wouldn't still do that, even with 100% test coverage, LT and integration tests, unless theres an exception the business relies on `#sre`

=> https://medium.com/openclassrooms-product-design-and-engineering/do-not-deploy-on-friday-92b1b46ebfe6 medium.com/openclassrooms-product-desi..-..g/do-not-deploy-on-friday-92b1b46ebfe6

### Some neat slice tricks for Go: `#golang` ...

Some neat slice tricks for Go: `#golang`

=> https://blog.devtrovert.com/p/12-slice-tricks-to-enhance-your-go blog.devtrovert.com/p/12-slice-tricks-to-enhance-your-go

### I understand that Kubernetes is not for ...

I understand that Kubernetes is not for everyone, but it still seems to be the new default for everything newly built. Despite the fact that Kubernetes is complex to maintain and use, there is still a lot of SRE/DevOps talent out there who have it on their CVs, which contributes significantly to the supportability of the infrastructure and the applications running on it. This way, you don't have to teach every new engineer your "own way" infrastructure. It's like a standard language of infrastructure that many people speak. However, Kubernetes should not be the default solution for everything, in my opinion. `#kubernetes` `#k8s`

=> https://www.gitpod.io/blog/we-are-leaving-kubernetes www.gitpod.io/blog/we-are-leaving-kubernetes

## June 2025

### Some great advices, will try out some of them! ...

Some great advices, will try out some of them! `#programming`

=> https://endler.dev/2025/best-programmers/ endler.dev/2025/best-programmers/

### In `#Golang`, values are actually copied when ...

In `#Golang`, values are actually copied when assigned (boxed) into an interface. That can have performance impact.

=> https://goperf.dev/01-common-patterns/interface-boxing/ goperf.dev/01-common-patterns/interface-boxing/

### This is a great little tutorial for searching ...

This is a great little tutorial for searching in the `#HelixEditor` `#editor` `#coding`

=> https://helix-editor-tutorials.com/tutorials/using-helix-global-search/ helix-editor-tutorials.com/tutorials/using-helix-global-search/

### The mov instruction of a CPU is turing ...

The mov instruction of a CPU is turing complete. And theres an implementation of `#Doom` only using mov, it renders one frame per 7 hours! `#fun`

=> https://beza1e1.tuxen.de/articles/accidentally_turing_complete.html beza1e1.tuxen.de/articles/accidentally_turing_complete.html

### I removed the social media profile from my ...

I removed the social media profile from my GrapheneOS phone. Originally, I created a separate profile just for social media to avoid using it too often. But I noticed that I switched to it too frequently. Not having social media within reach is probably the best option. `#socialmedia` `#sm` `#distractions`

### So want a "real" recent UNIX? Use AIX! `#macos` ...

So want a "real" recent UNIX? Use AIX! `#macos` `#unix` `#aix`

=> https://www.osnews.com/story/141633/apples-macos-unix-certification-is-a-lie/ www.osnews.com/story/141633/apples-macos-unix-certification-is-a-lie/

### This episode, I think, is kind of an eye-opener ...

This episode, I think, is kind of an eye-opener for me personally. I knew, that AI is there to stay, but you better should now start playing with your pet projects, otherwise your performance reviews will be awkward in a year or two from now, when you are expected to use AI for your daily work. `#ai` `#llm` `#coding` `#programming`

=> https://changelog.com/friends/96 changelog.com/friends/96

### My `#OpenBSD` blog setup got mentioned in the ...

My `#OpenBSD` blog setup got mentioned in the BSDNow.tv Podcast (In the Feedback section) :-) `#BSD` `#podcast` `#runbsd`

=> https://www.bsdnow.tv/614 www.bsdnow.tv/614

### `#Golang` is the best when it comes to agentic ...

`#Golang` is the best when it comes to agentic coding: `#llm`

=> https://lucumr.pocoo.org/2025/6/12/agentic-coding/ lucumr.pocoo.org/2025/6/12/agentic-coding/

### Where `#zsh` is better than `#bash` ...

Where `#zsh` is better than `#bash`

=> https://www.arp242.net/why-zsh.html www.arp242.net/why-zsh.html

### I really enjoyed this talk about obscure Go ...

I really enjoyed this talk about obscure Go optimizations. None of it is really standard and can change from one version of Go to another, though. `#golang` `#talk`

=> https://www.youtube.com/watch?v=rRtihWOcaLI www.youtube.com/watch?v=rRtihWOcaLI

### Commenting your regular expression is generally ...

Commenting your regular expression is generally a good advice! Works pretty well as described in the article not just in `#Ruby`, but also in `#Perl` (@Perl), `#RakuLang`, ...

=> https://thoughtbot.com/blog/comment-your-regular-expressions thoughtbot.com/blog/comment-your-regular-expressions

### You have to make a decision for yourself, but ...

You have to make a decision for yourself, but generally, work smarter (and faster—but keep the quality)! About 40 hours `#productivity` `#work` `#workload`

=> https://thesquareplanet.com/blog/about-40-hours/ thesquareplanet.com/blog/about-40-hours/

### "100 Go Mistakes and How to Avoid Them" is one ...

"100 Go Mistakes and How to Avoid Them" is one of my favorite `#Golang` books. Julia Evans also stumbled across some issues she'd learned from this book. The book itself is an absolute must for every Gopher (or someone who wants to become one!)

=> https://jvns.ca/blog/2024/08/06/go-structs-copied-on-assignment/ jvns.ca/blog/2024/08/06/go-structs-copied-on-assignment/

### The `#Ruby` Data class seems quite helpful ...

The `#Ruby` Data class seems quite helpful

=> https://allaboutcoding.ghinda.com/example-of-value-objects-using-rubys-data-class allaboutcoding.ghinda.com/example-of-value-objects-using-rubys-data-class

Other related posts:

<< template::inline::index posts-from

E-Mail your comments to `paul@nospam.buetow.org` :-)

=> ../ Back to the main site