PageSourceSearch

https://strugglers.net/

html strugglers.net collected 2026-09-25 14:27:16 UTC 22,518 bytes, 834 lines download raw bytes

1<!DOCTYPE html>
2<html lang="en" data-theme="dark">
3
4<head>
5    <meta charset="UTF-8"><meta http-equiv="Content-Security-Policy"
6content="default-src 'self';font-src 'self' data:;img-src 'self' https://* data:;media-src 'self';style-src 'self';frame-src player.vimeo.com https://www.youtube-nocookie.com;connect-src 'self' https://strugglers.net/comments/;script-src 'self' https://strugglers.net/comments/ 'self'">
7<meta name="viewport" content="width=device-width, initial-scale=1.0">
8    <meta name="base" content="https://strugglers.net">
9
10    
11    <title>
12The Ongoing Struggle</title>
13
14    
15    
16        <link rel="icon" type="image/png" href="https://strugglers.net/img/favicon.ico"/>
17    
18    
19
20    
21    
22        
23            
24            
25                
26                    <link rel="alternate" type="application/atom+xml" title="The Ongoing Struggle - Atom Feed" href="https://strugglers.net/atom.xml">
27                
28            
29        
30    
31
32    
33    
34    
35        
36            <link rel="stylesheet" href="https://strugglers.net/custom_subset.css?h=0b9535a28bc3d5bf2321">
37        
38    
39
40    
41        <link rel="stylesheet" href="https://strugglers.net/main.css?h=045c365e19a4d50a64bb" />
42        <link rel="stylesheet" href="https://strugglers.net/strugglers_extras.css?h=f795c7cfbb199d6468fb" />
43        <link rel="stylesheet" href="https://strugglers.net/skins/mint.css?h=504215cf6bc10586b487" />
44
45    <meta name="color-scheme" content="light dark" />
46        <meta name="description" content="I&#x27;ll get there eventually" />
47        <meta property="og:description" content="I&#x27;ll get there eventually" />
48
49    
50
51    <meta property="og:title" content="The Ongoing Struggle" />
52    <meta property="og:type" content="article" />
53
54    
55    
56    
57    
58        
59        
60    
61
62    
63
64    
65    
66    
67    
68
69    
70        
71        
72    
73
74    <meta property="og:image" content="https://strugglers.net/social_cards/default.jpg?h=5094fa161bdce3c69bf5" />
75    <meta property="og:image:width" content="1400" />
76    <meta property="og:image:height" content="800" />
77    <meta name="twitter:image" content="https://strugglers.net/social_cards/default.jpg?h=5094fa161bdce3c69bf5" />
78    <meta name="twitter:card" content="summary_large_image" />
79
80<meta property="og:locale" content="en_GB" />
81
82    <meta property="og:url" content="https:&#x2F;&#x2F;strugglers.net&#x2F;" /><meta property="og:site_name" content="The Ongoing Struggle">
83        <noscript><link rel="stylesheet" href="https://strugglers.net/no_js.css"/></noscript>
84        
84<script type="text/javascript" src="https://strugglers.net/js/initializeTheme.min.js"></script>
84
85        
85<script defer src="https://strugglers.net/js/themeSwitcher.min.js"></script>
85
86        
86<script defer src="https://strugglers.net/js/searchElasticlunr.min.js?h=3626c0ef99daa745b31e"></script>
86
87
88        
89    
90</head>
91
92
93<body>
94    <a href="#main-content" id="skip-link">Skip to content</a>
95    <header>
96    <nav class="navbar">
97        <div class="nav-title">
98            <a class="home-title" href="https://strugglers.net/">The Ongoing Struggle</a>
99        </div>
100            <div class="nav-navs">
101                <ul>
102                        
103                            <li>
104                                <a class="nav-links no-hover-padding" href="https://strugglers.net/">Home
105                                </a>
106                            </li>
107                        
108                            <li>
109                                <a class="nav-links no-hover-padding" href="https://strugglers.net/posts/">Posts
110                                </a>
111                            </li>
112                        
113                            <li>
114                                <a class="nav-links no-hover-padding" href="https://strugglers.net/pages/about/">About
115                                </a>
116                            </li>
117                        
118                            <li>
119                                <a class="nav-links no-hover-padding" href="https://strugglers.net/tags/">Tags
120                                </a>
121                            </li>
122                        <li class="menu-icons-container">
123                        <ul class="menu-icons-group">
124                            <li class="js menu-icon">
125                                <div role="button" tabindex="0" id="search-button" class="search-icon interactive-icon" title="Click or press $SHORTCUT to open search" aria-label="Click or press $SHORTCUT to open search">
126                                    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 -960 960 960">
127                                        <path d="M784-120 532-372q-30 24-69 38t-83 14q-109 0-184.5-75.5T120-580q0-109 75.5-184.5T380-840q109 0 184.5 75.5T640-580q0 44-14 83t-38 69l252 252-56 56ZM380-400q75 0 127.5-52.5T560-580q0-75-52.5-127.5T380-760q-75 0-127.5 52.5T200-580q0 75 52.5 127.5T380-400Z"/>
128                                    </svg>
129                                </div>
130                            </li>
131
132                            
133                            
134
135                            <li class="theme-switcher-wrapper js"><div
136        title="Toggle dark&#x2F;light mode"
137        class="theme-switcher"
138        tabindex="0"
139        role="button"
140        aria-label="Toggle dark mode"
141        aria-pressed="false">
142    </div><div
143        title="Reset mode to default"
144        class="theme-resetter arrow"
145        tabindex="0"
146        role="button"
147        aria-hidden="true"
148        aria-label="Reset mode to default">
149    </div>
150
151</li>
152</ul>
153                    </li>
154                </ul>
155            </div>
156        
157    </nav>
158</header>
159
160    <div class="content" id="main-content">
161
162        
163        
164
165
166
167<main class="posts-first">
168
169
170
171<div class="h-card hidden">
172  <div><span class="p-name" rel="me">Andy</span>
173
174    
175  </div>
176
177  
178
179  
180  <div><span>
181      <a class="u-url u-id" href="https:&#x2F;&#x2F;strugglers.net">homepage</a>
182    </span> -
183      
184      <span>
185        <a class="p-url" rel="me" href="https://social.bitfolk.com/@grifferz">Fediverse</a>
186      </span> -
187      
188      <span>
189        <a class="p-url" rel="me" href="https://youtube.com/@grifferz">YouTube</a>
190      </span> -
191      
192      <span>
193        <a class="p-url" rel="me" href="https://github.com/grifferz">GitHub</a>
194      </span> -
195      
196    
197  </div>
198
199  
200  
201  
202    
203  
204    
205  
206  
207
208  </div>
209
210<div id="banner-container-home">
211    <div id="home-banner-text">
212        <h1 id="home-banner-header">I&#x27;ll get there eventually</h1>
213        <section id="banner-home-subtitle">
214            <p>New blog, who dis? I've switched blog software and am still moving posts over
215from the <a rel="external" href="https://strugglers.net/~andy/blog/">old site</a>, so you might find
216what you were looking for over there.</p>
217<p>I decided not to keep the same URL because after about 20 years I figured I
218should probably come to terms with the fact that <code>strugglers.net</code> is now only
219really used by me, for my stuff.</p>
220
221        </section>
222    </div><div id="image-container-home">
223            <img alt="Andy" id="banner-home-img" src="https:&#x2F;&#x2F;strugglers.net&#x2F;img&#x2F;profile-violet-round-450px.png" />
224        </div></div>
225
226
227<div id="posts-list">
228        <div>
229            
230
231<h1 class="title-container section-title bottom-divider">
232    Most recent posts
233</h1>
234
235
236        </div>
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<div class="bloglist-container">
360    
361    
362        
363            
364                
365            
366
367            <section class="bloglist-meta bottom-divider">
368                <ul><li class="date">24th August 2026</li>
369
370                    
371                </ul>
372            </section>
373
374            <section class="bloglist-content bottom-divider">
375                <div>
376                    
377
378                    <h2 class="bloglist-title">
379                        <a href="https:&#x2F;&#x2F;strugglers.net&#x2F;posts&#x2F;2026&#x2F;dhcpv6-broken-in-d-i-for-tenplus-years&#x2F;">DHCPv6 has been broken in the Debian Installer for 10+ years</a>
380                    </h2>
381
382                    
383                        <div class="bloglist-tags">
384                            
385                                <a class="tag" href="https://strugglers.net/tags/debian/">debian</a>
386                            
387                                <a class="tag" href="https://strugglers.net/tags/ipv6/">ipv6</a>
388                            
389                        </div>
390                    
391
392                    <div class="description">
393                        
394                            <p>As far as I can see, installs that require DHCPv6 have not been possible using
395the Debian Installer for more than 10 years. A bug has been reported but I
396suspect hasn't seen much attention because most people who have IPv6 use SLAAC.</p>
397                        
398                    </div>
399                    <a class="readmore" href="https:&#x2F;&#x2F;strugglers.net&#x2F;posts&#x2F;2026&#x2F;dhcpv6-broken-in-d-i-for-tenplus-years&#x2F;">Read more&nbsp;<span class="arrow">→</span></a>
400                </div>
401            </section>
402        
403        
404            
405        
406    
407        
408            
409                
410            
411
412            <section class="bloglist-meta bottom-divider">
413                <ul><li class="date">13th August 2026</li>
414
415                    
416                </ul>
417            </section>
418
419            <section class="bloglist-content bottom-divider">
420                <div>
421                    
422
423                    <h2 class="bloglist-title">
424                        <a href="https:&#x2F;&#x2F;strugglers.net&#x2F;posts&#x2F;2026&#x2F;
424fail2ban-list-all-banned-ips&#x2F;">I got tired of having to look up how to list all fail2ban bans</a>
425                    </h2>
426
427                    
428                        <div class="bloglist-tags">
429                            
430                                <a class="tag" href="https://strugglers.net/tags/bash/">bash</a>
431                            
432                                <a class="tag" href="https://strugglers.net/tags/fail2ban/">fail2ban</a>
433                            
434                        </div>
435                    
436
437                    <div class="description">
438                        
439                            <p>It's very strange that there is no simple way to look up all the IPs that are banned in all jails of <code>fail2ban</code>.</p>
440                        
441                    </div>
442                    <a class="readmore" href="https:&#x2F;&#x2F;strugglers.net&#x2F;posts&#x2F;2026&#x2F;fail2ban-list-all-banned-ips&#x2F;">Read more&nbsp;<span class="arrow">→</span></a>
443                </div>
444            </section>
445        
446        
447            
448        
449    
450        
451            
452                
453            
454
455            <section class="bloglist-meta bottom-divider">
456                <ul><li class="date">25th March 2026</li>
457
458                    
459                </ul>
460            </section>
461
462            <section class="bloglist-content bottom-divider">
463                <div>
464                    
465
466                    <h2 class="bloglist-title">
467                        <a href="https:&#x2F;&#x2F;strugglers.net&#x2F;posts&#x2F;2026&#x2F;communication-must-do-better&#x2F;">Communication: must do better</a>
468                    </h2>
469
470                    
471                        <div class="bloglist-tags">
472                            
473                                <a class="tag" href="https://strugglers.net/tags/dog-sitting/">dog sitting</a>
474                            
475                        </div>
476                    
477
478                    <div class="description">
479                        
480                            <p>A nearly catastrophic incident of professional miscommunication leaves me
481reeling</p>
482                        
483                    </div>
484                    <a class="readmore" href="https:&#x2F;&#x2F;strugglers.net&#x2F;posts&#x2F;2026&#x2F;communication-must-do-better&#x2F;">Read more&nbsp;<span class="arrow">→</span></a>
485                </div>
486            </section>
487        
488        
489            
490        
491    
492        
493            
494                
495            
496
497            <section class="bloglist-meta bottom-divider">
498                <ul><li class="date">28th February 2026</li>
499
500                    
501                </ul>
502            </section>
503
504            <section class="bloglist-content bottom-divider">
505                <div>
506                    
507
508                    <h2 class="bloglist-title">
509                        <a href="https:&#x2F;&#x2F;strugglers.net&#x2F;posts&#x2F;2026&#x2F;limitations-of-uk-split-ticketing&#x2F;">Limitations of UK split ticketing</a>
510                    </h2>
511
512                    
513                        <div class="bloglist-tags">
514                            
515                                <a class="tag" href="https://strugglers.net/tags/personal/">personal</a>
516                            
517                                <a class="tag" href="https://strugglers.net/tags/rant/">rant</a>
518                            
519                        </div>
520                    
521
522                    <div class="description">
523                        
524                            <p>How split ticketing tripped me up</p>
525                        
526                    </div>
527                    <a class="readmore" href="https:&#x2F;&#x2F;strugglers.net&#x2F;posts&#x2F;2026&#x2F;limitations-of-uk-split-ticketing&#x2F;">Read more&nbsp;<span class="arrow">→</span></a>
528                </div>
529            </section>
530        
531        
532            
533        
534    
535        
536            
537                
538            
539
540            <section class="bloglist-meta ">
541                <ul><li class="date">2nd February 2026</li>
542
543                    
544                </ul>
545            </section>
546
547            <section class="bloglist-content ">
548                <div>
549                    
550
551                    <h2 class="bloglist-title">
552                        <a href="https:&#x2F;&#x2F;strugglers.net&#x2F;posts&#x2F;2026&#x2F;rusty-fizzbuzz-with-some-divan&#x2F;">Rusty Fizz buzz with some Divan</a>
553                    </h2>
554
555                    
556                        <div class="bloglist-tags">
557                            
558                                <a class="tag" href="https://strugglers.net/tags/rustlang/">rustlang</a>
559                            
560                        </div>
561                    
562
563                    <div class="description">
564                        
565                            <p>A Rust video by Andy Balaam inspires me to look into benchmarking with Divan</p>
566                        
567                    </div>
568                    <a class="readmore" href="https:&#x2F;&#x2F;strugglers.net&#x2F;posts&#x2F;2026&#x2F;rusty-fizzbuzz-with-some-divan&#x2F;">Read more&nbsp;<span class="arrow">→</span></a>
569                </div>
570            </section>
571        
572        
573            
574                <div class="all-posts">
575                    <a href="https://strugglers.net/posts/">All posts&nbsp;<span class="arrow">⟶</span></a>
576                </div>
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        
627            
628        
629    
630        
631        
632            
633        
634    
635        
636        
637            
638        
639    
640        
641        
642            
643        
644    
645        
646        
647            
648        
649    
650        
651        
652            
653        
654    
655        
656        
657            
658        
659    
660        
661        
662            
663        
664    
665        
666        
667            
668        
669    
670        
671        
672            
673        
674    
675        
676        
677            
678        
679    
680        
681        
682    
683</div>
684
685    </div>
686
687    
688</main>
689
690
691<span id="copy-success" class="hidden">
692        Copied!
693    </span>
694    <span id="copy-init" class="hidden">
695        Copy code to clipboard
696    </span>
697    
697<script defer src="https://strugglers.net/js/copyCodeToClipboard.min.js"></script>
697
698
699<script defer src="https://strugglers.net/js/footnoteBacklinks.min.js"></script>
699
700    </div>
701    <footer>
702    <section>
703        <nav class="socials nav-navs"><ul><li>
704                        <a class="nav-links no-hover-padding social" rel="" 
705
706 href="https://strugglers.net/atom.xml">
707                        <img loading="lazy" alt="feed" title="feed" src="https://strugglers.net/social_icons/rss.svg">
708                        </a>
709                    </li><li class="js"><a class="nav-links no-hover-padding social" href="#" data-encoded-email="YW5keS1ibG9nQHN0cnVnZ2xlcnMubmV0"><img loading="lazy" alt="email" title="email" src="https://strugglers.net/social_icons/email.svg">
710                            </a>
711                        </li>
712                        
713                            <li>
714                                <a class="nav-links no-hover-padding social" rel=" me" 
715
716 href="https://social.bitfolk.com/@grifferz">
717                                    <img loading="lazy" alt="Fediverse" title="Fediverse" src="https://strugglers.net/social_icons/mastodon.svg">
718                                </a>
719                            </li>
720                        
721                            <li>
722                                <a class="nav-links no-hover-padding social" rel=" me" 
723
724 href="https://youtube.com/@grifferz">
725                                    <img loading="lazy" alt="YouTube" title="YouTube" src="https://strugglers.net/social_icons/youtube.svg">
726                                </a>
727                            </li>
728                        
729                            <li>
730                                <a class="nav-links no-hover-padding social" rel=" me" 
731
732 href="https://github.com/grifferz">
733                                    <img loading="lazy" alt="GitHub" title="GitHub" src="https://strugglers.net/social_icons/github.svg">
734                                </a>
735                            </li>
736                        
737                    
738                </ul>
739            
740        </nav>
741
742        
743        <nav class="nav-navs">
744                <small>
745                    <ul>
746                        
747                        <li><a class="nav-links no-hover-padding" href="https:&#x2F;&#x2F;strugglers.net&#x2F;sitemap.xml">
748                                sitemap
749                            </a>
750                        </li>
751                    
752                    </ul>
753                </small>
754        
755        </nav>
756
757        <div class="credits">
758            <small>
759                
760    
761    
762    
763    
764        
765    
766        
767    
768
769    
770
771    
772    
773    
774
775    
776    
777    <p><p>© 2026 Andy Smith • Unless otherwise noted,
778the content in this website is available under the
779<a rel="external" href="https://creativecommons.org/licenses/by-sa/4.0/">CC BY-SA 4.0</a> license.</p>
780</p>
781
782                
783                Powered by
784                <a rel="" 
785
786 href="https://www.getzola.org">Zola</a>
787                &amp;
788                <a rel="" 
789
790 href="https://github.com/welpo/tabi">tabi</a>
791
792                •
793                    <a rel="" 
794
795 href="https:&#x2F;&#x2F;github.com&#x2F;grifferz&#x2F;ongoing-struggle">
796                        Site source
797                    </a></small>
798        </div>
799    </section>
800
801    
801<script src="https://strugglers.net/js/decodeMail.min.js" async></script>
801<div id="searchModal" class="search-modal js" role="dialog" aria-labelledby="modalTitle">
802    <h1 id="modalTitle" class="visually-hidden">Search</h1>
803    <div id="modal-content">
804        <div id="searchBar">
805            <div class="search-icon" aria-hidden="true">
806                <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 -960 960 960">
807                    <path d="M784-120 532-372q-30 24-69 38t-83 14q-109 0-184.5-75.5T120-580q0-109 75.5-184.5T380-840q109 0 184.5 75.5T640-580q0 44-14 83t-38 69l252 252-56 56ZM380-400q75 0 127.5-52.5T560-580q0-75-52.5-127.5T380-760q-75 0-127.5 52.5T200-580q0 75 52.5 127.5T380-400Z"/>
808                </svg>
809            </div>
810            <input id="searchInput" role="combobox" autocomplete="off" spellcheck="false" aria-expanded="false" aria-controls="results-container" placeholder="Search…"/>
811            <div id="clear-search" class="close-icon interactive-icon" tabindex="0" role="button" title="Clear search">
812                <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 -960 960 960">
813                <path d="m256-200-56-56 224-224-224-224 56-56 224 224 224-224 56 56-224 224 224 224-56 56-224-224-224 224Z"/>
814                </svg>
815            </div>
816        </div>
817        <div id="results-container">
818            <div id="results-info"><span id="zero_results"> No results</span>
819                <span id="one_results"> $NUMBER result</span>
820                <span id="many_results"> $NUMBER results</span><span id="two_results"> $NUMBER results</span>
821                <span id="few_results"> $NUMBER results</span>
822            </div>
823            <div id="results" role="listbox"></div>
824        </div>
825    </div>
826</div>
827</footer>
828
829
830    
831    
832</body>
833
834</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.