Going back to the old style phlog, mdoc is a pain. - gopherhole - My gopherhole source code.
 (HTM) git clone git://jay.scot/gopherhole
 (DIR) Log
 (DIR) Files
 (DIR) Refs
       ---
 (DIR) commit 5c32b549ea87f47fa97e58040f2721d8f555440c
 (DIR) parent a12d07bab3992a669bc40bdeb974264641606d12
 (HTM) Author: Jay Scott <me@jay.scot>
       Date:   Mon,  1 Dec 2025 11:52:53 +0000
       
       Going back to the old style phlog, mdoc is a pain.
       
       Diffstat:
         M .gitignore                          |       2 +-
         D bin/build.sh                        |      20 --------------------
         M bin/sync.sh                         |       1 -
         M phlog/index.gph                     |      43 ++++++++++++++++++++++++++++---
         D phlog/mdoc/028-crack.7              |     104 -------------------------------
         D phlog/template                      |      30 ------------------------------
         R phlog/archive/2021/001.txt -> phlo… |       0 
         R phlog/archive/2021/002.txt -> phlo… |       0 
         R phlog/archive/2021/003.txt -> phlo… |       0 
         R phlog/archive/2021/004.txt -> phlo… |       0 
         R phlog/archive/2022/005.txt -> phlo… |       0 
         R phlog/archive/2022/006.txt -> phlo… |       0 
         R phlog/archive/2022/007.txt -> phlo… |       0 
         R phlog/archive/2022/008.txt -> phlo… |       0 
         R phlog/archive/2022/009.txt -> phlo… |       0 
         R phlog/archive/2022/010.txt -> phlo… |       0 
         R phlog/archive/2023/011.txt -> phlo… |       0 
         R phlog/archive/2023/012.txt -> phlo… |       0 
         R phlog/archive/2023/013.txt -> phlo… |       0 
         R phlog/archive/2023/014.txt -> phlo… |       0 
         R phlog/archive/2023/015.txt -> phlo… |       0 
         R phlog/archive/2023/016.txt -> phlo… |       0 
         R phlog/archive/2023/017.txt -> phlo… |       0 
         R phlog/archive/2023/018.txt -> phlo… |       0 
         R phlog/archive/2023/019.txt -> phlo… |       0 
         R phlog/archive/2023/020.txt -> phlo… |       0 
         R phlog/archive/2023/021.txt -> phlo… |       0 
         R phlog/archive/2023/022.txt -> phlo… |       0 
         R phlog/archive/2023/023.txt -> phlo… |       0 
         R phlog/archive/2023/024.txt -> phlo… |       0 
         R phlog/archive/2023/025.txt -> phlo… |       0 
         R phlog/archive/2023/026.txt -> phlo… |       0 
         R phlog/archive/2024/027.txt -> phlo… |       0 
         D phlog/txt/028-crack.txt             |      86 ------------------------------
         A phlog/txt/028.txt                   |      80 +++++++++++++++++++++++++++++++
         A phlog/txt/029.txt                   |     133 +++++++++++++++++++++++++++++++
       
       36 files changed, 254 insertions(+), 245 deletions(-)
       ---
 (DIR) diff --git a/.gitignore b/.gitignore
       @@ -1,2 +1,2 @@
        drafts/
       -files
       +files/
 (DIR) diff --git a/bin/build.sh b/bin/build.sh
       @@ -1,20 +0,0 @@
       -#!/bin/sh
       -
       -mkdir -p txt
       -
       -for file in phlog/mdoc/*.7; do
       -        base="${file##*/}"
       -        base="${base%.7}"
       -
       -        txt_file="phlog/txt/${base}.txt"
       -
       -        if [ -f "$txt_file" ] && [ "$file" -nt "$txt_file" ]; then
       -                echo "Updating $txt_file..."
       -                mandoc -T utf8 "$file" >"$txt_file"
       -        elif [ ! -f "$txt_file" ]; then
       -                echo "Generating $txt_file..."
       -                mandoc -T utf8 "$file" >"$txt_file"
       -        else
       -                echo "Skipping $txt_file..."
       -        fi
       -done
 (DIR) diff --git a/bin/sync.sh b/bin/sync.sh
       @@ -1,7 +1,6 @@
        lftp sftp://jay.scot -e "
                mirror -R \
                --delete \
       -        --exclude=files* \
                --exclude=meta/bad_ips.txt \
                --exclude=.git* \
                --exclude=bin* \
 (DIR) diff --git a/phlog/index.gph b/phlog/index.gph
       @@ -9,8 +9,45 @@
                J A Y . S C O T
        
        
       -[0|what's the crack?|/phlog/txt/028-crack.txt|server|port]
       +[ 2025 ]
        
       +[0|2025-12-01 ... sfeed, fdm, rdrview and mutt|/phlog/txt/029.txt|server|port]
       +[0|2025-11-22 ... what's the crack?|/phlog/txt/028.txt|server|port]
        
       -2021 - 2024
       -[1|old man shouts at clouds archive..|/phlog/archive/|server|port]
       +[ 2024 ]
       +
       +[0|2024-01-28 ... Twelve months of Bivvy - Month 1|/phlog/txt/027.txt|server|port]
       +
       +[ 2023 ]
       +
       +[0|2023-11-27 ... My wee Microadventures|/phlog/txt/026.txt|server|port]
       +[0|2023-09-15 ... New dumb phone at last, it cost £11.50 but came with £10 edit|/phlog/txt/025.txt|server|port]
       +[0|2023-09-03 ... Ansible no more, moved all services to containers|/phlog/txt/024.txt|server|port]
       +[0|2023-08-13 ... Earned my Terraform certification but not for a good reason|/phlog/txt/022.txt|server|port]
       +[0|2023-07-06 ... A ready to read archive of old gopher Usenet groups|/phlog/txt/021.txt|server|port]
       +[0|2023-07-03 ... Getting to grips with slrn|/phlog/txt/020.txt|server|port]
       +[0|2023-06-19 ... My Beelink U59 running OpenBSD kicked the bucket!|/phlog/txt/019.txt|server|port]
       +[0|2023-04-30 ... The lack of time for geeky tasks!|/phlog/txt/018.txt|server|port]
       +[0|2023-03-11 ... Checking out gaming on OpenBSD|/phlog/txt/017.txt|server|port]
       +[0|2023-02-18 ... Messing with pkg_info and ditching password-store|/phlog/txt/016.txt|server|port]
       +[0|2023-02-11 ... An OpenBSD manpage led me down a rabbit hole|/phlog/txt/015.txt|server|port]
       +[0|2023-02-05 ... Re-evaluating my local mail setup with OpenSMTPD|/phlog/txt/014.txt|server|port]
       +[0|2023-02-03 ... Finally, I switched over to OpenBSD|/phlog/txt/013.txt|server|port]
       +[0|2023-01-29 ... Automating my infra deployment and configuration|/phlog/txt/012.txt|server|port]
       +[0|2023-01-14 ... Reducing my footprint, using a mini-pc|/phlog/txt/011.txt|server|port]
       +
       +[ 2022 ]
       +
       +[0|2022-09-28 ... Convert mbox to maildir using fdm|/phlog/txt/010.txt|server|port]
       +[0|2022-09-13 ... A true cheap dumbphone,impossible?|/phlog/txt/009.txt|server|port]
       +[0|2022-08-01 ... I moved over to wayland|/phlog/txt/008.txt|server|port]
       +[0|2022-05-01 ... Build, patch and maintain suckless tools|/phlog/txt/007.txt|server|port]
       +[0|2022-03-01 ... Association of really cruel viruses (arcv)|/phlog/txt/006.txt|server|port]
       +[0|2022-01-02 ... Why I dropped freebsd after a month|/phlog/txt/005.txt|server|port]
       +
       +[ 2021 ]
       +
       +[0|2021-12-01 ... How I use the modern web|/phlog/txt/004.txt|server|port]
       +[0|2021-11-01 ... Qutebrowser is amazing but|/phlog/txt/003.txt|server|port]
       +[0|2021-10-01 ... Is github the facebook of coding?|/phlog/txt/002.txt|server|port]
       +[0|2021-09-01 ... So much bloat around dotfiles|/phlog/txt/001.txt|server|port]
 (DIR) diff --git a/phlog/mdoc/028-crack.7 b/phlog/mdoc/028-crack.7
       @@ -1,104 +0,0 @@
       -.Dd November 22, 2025
       -.Dt CRACK 7
       -.Os "Jay Scott"
       -.
       -.Sh NAME
       -.Nm what's the crack?
       -.Nd 2025
       -.
       -.Sh DESCRIPTION
       -It's been a while since I posted anything here. Usually, I posted
       -after tinkering with something cool, but a few things happened and left
       -me with very little enthusiasm and drive to write anything. Anyway,
       -here's some general things that's happened over the year; it's just
       -going to be a bit of a mind dump on tech related things.
       -.
       -.Pp
       -I never stopped using gopher; in fact, my browsing habits have changed
       -dramatically in the last year that I use gopher more. My main browser
       -is now lynx, used in conjunction with rdrview to make the html more
       -readable. With bongusta, lobste.rs and metafilter being daily visits
       -on gopher, along with quarry/floodgap for searching and gopherpedia for
       -everything in between. The only reason I open up a
       -.Dq normal browser
       -like qutebrowser or librewolf is when either cloudflare blocks the site
       -or that new AI bot blocker anubis does. Anubis is the worst as you
       -*need* javascript enabled for it to work, and so many sites are using
       -it now. Some sites seem to allow you to bypass anubis if your
       -user-agent is set to lynx, so with rdrview, set the following
       -environment variables.
       -.
       -.Bd -literal -offset indent
       -export RDRVIEW_BROWSER='lynx'
       -export RDRVIEW_USER_AGENT='Lynx/2.9.2'
       -.Ed
       -.
       -.Pp
       -Man, the www is truly dead.
       -.
       -.Pp
       -I am still using my nokia 105 phone daily, I have my old smart phone
       -which sits next to my work laptop, it is purely used for the
       -authenticator app to login for work. I wish they allowed the use of a
       -yubikey or similar. I also have a SIP desk phone, a snom 370, which is
       -hooked up to a local asterisk box I am running, outbound / inbound
       -calls to this are via localphone.com. I used to work in an ISP where
       -asterisk and voip was the main product for them, I loved playing around with
       -it. Being of the generation brought up with redboxing, and blueboxing if
       -you could find (or told) a number for a foreign operator as it wasn't
       -possible to bluebox directly on BTs network. I even contributed quite
       -heavily to rapid7 warvox wardialer many moons ago, when it was still a
       -thing. Oh to be young again! The snom only cost £5 on ebay, and I pay
       -£1.20 a month for my sim with lebara. It gives me unlimited text/calls
       -and 10gb data, I don't use any data though with the dumbphone. No
       -contract. So works out quite a cheap tech toy for the amount of time I
       -spend messing around with it. I always wince a bit when people say they
       -are paying £30+ a month, while also hooked into a 24 month
       -contract - expensive!
       -.
       -.Pp
       -OpenBSD is the go to for all my servers still, gopher and public git
       -repos are hosted over on openbsd amsterdam. I had a replacement beelink
       -u59 sent to me which I use for my own self-hosting, it has around 4TB,
       -and setup as a nas, along with hosting git, asterisk and jellyfin. My
       -daily driver is still alpine linux, if something happens to it, I will
       -switch the desktop back over to openbsd, but it's been rock solid for
       -well over a year now.
       -.
       -.Pp
       -The only replacement I really want to do is a fire stick I use on my
       -TV, it runs the jellyfin app. The problem, outwith the fact it's an
       -amazon device, is it fails to work if there is no internet connection.
       -So while I do have everything selfhosted, I still can't watch stuff on
       -jellyfin if the internet is done - madness!
       -.Pp
       -Looking a head at tech projects, and more specifically, these are some
       -of the gopher related projects I want to take a crack at this coming
       -year, mostly focus on things I still use the www for. So getting them
       -under gopher would be pretty handy!
       -.Pp
       -.D1 - brutalist report clone
       -.D1 - search for films now in the public domain
       -.D1 - www page dump / archive using rdrview
       -.D1 - pastebin type service
       -.Sh SEE ALSO
       -.Bl -item -compact
       -.It
       -.Lk gopher://gopher.metafilter.com/1/MetaFilter "Metafilter"
       -.It
       -.Lk gopher://gopherpedia.com/ "Gopherpedia"
       -.It
       -.Lk gopher://i-logout.cz/1/bongusta/ "Bongusta"
       -.It
       -.Lk gopher://typed-hole.org/1/lobsters "Lobste.rs"
       -.It
       -.Lk gopher://gopher.icu/1/quarry "Quarry"
       -.It
       -.Lk gopher://gopher.floodgap.com/7/v2/vs "FloodGap"
       -.It
       -.Lk https://github.com/eafer/rdrview "rdrview"
       -.It
       -.Lk https://brutalist.report "Brutalist Report rdrview"
       -.El
       -.Sh AUTHORS
       -.Nm jay Aq Mt me@jay.scot
 (DIR) diff --git a/phlog/template b/phlog/template
       @@ -1,30 +0,0 @@
       -.Dd November 24, 2025
       -.Dt THE-SLUG 7
       -.Os "Jay Scott"
       -.
       -.Sh NAME
       -.Nm time
       -.Nd 2025
       -.
       -.Sh DESCRIPTION
       -This is my text, it is not longer than 72 chars wide - why you ask?
       -Well if you know, you know. This is also a double quote
       -.Dq irubru
       -its cool right?
       -.
       -.Bd -literal -offset indent
       -# This is a code block
       -echo "Hi Mum"
       -.Ed
       -.
       -.Pp
       -Also this cross refs another man page
       -.Xr        man 7
       -.
       -.Sh SEE ALSO
       -.Lk gopher://jay.scot/blah "This is a link!"
       -.
       -.Sh HISTORY
       -.
       -.Sh AUTHORS
       -.Nm jay Aq Mt me@jay.scot
 (DIR) diff --git a/phlog/archive/2021/001.txt b/phlog/txt/001.txt
 (DIR) diff --git a/phlog/archive/2021/002.txt b/phlog/txt/002.txt
 (DIR) diff --git a/phlog/archive/2021/003.txt b/phlog/txt/003.txt
 (DIR) diff --git a/phlog/archive/2021/004.txt b/phlog/txt/004.txt
 (DIR) diff --git a/phlog/archive/2022/005.txt b/phlog/txt/005.txt
 (DIR) diff --git a/phlog/archive/2022/006.txt b/phlog/txt/006.txt
 (DIR) diff --git a/phlog/archive/2022/007.txt b/phlog/txt/007.txt
 (DIR) diff --git a/phlog/archive/2022/008.txt b/phlog/txt/008.txt
 (DIR) diff --git a/phlog/archive/2022/009.txt b/phlog/txt/009.txt
 (DIR) diff --git a/phlog/archive/2022/010.txt b/phlog/txt/010.txt
 (DIR) diff --git a/phlog/archive/2023/011.txt b/phlog/txt/011.txt
 (DIR) diff --git a/phlog/archive/2023/012.txt b/phlog/txt/012.txt
 (DIR) diff --git a/phlog/archive/2023/013.txt b/phlog/txt/013.txt
 (DIR) diff --git a/phlog/archive/2023/014.txt b/phlog/txt/014.txt
 (DIR) diff --git a/phlog/archive/2023/015.txt b/phlog/txt/015.txt
 (DIR) diff --git a/phlog/archive/2023/016.txt b/phlog/txt/016.txt
 (DIR) diff --git a/phlog/archive/2023/017.txt b/phlog/txt/017.txt
 (DIR) diff --git a/phlog/archive/2023/018.txt b/phlog/txt/018.txt
 (DIR) diff --git a/phlog/archive/2023/019.txt b/phlog/txt/019.txt
 (DIR) diff --git a/phlog/archive/2023/020.txt b/phlog/txt/020.txt
 (DIR) diff --git a/phlog/archive/2023/021.txt b/phlog/txt/021.txt
 (DIR) diff --git a/phlog/archive/2023/022.txt b/phlog/txt/022.txt
 (DIR) diff --git a/phlog/archive/2023/023.txt b/phlog/txt/023.txt
 (DIR) diff --git a/phlog/archive/2023/024.txt b/phlog/txt/024.txt
 (DIR) diff --git a/phlog/archive/2023/025.txt b/phlog/txt/025.txt
 (DIR) diff --git a/phlog/archive/2023/026.txt b/phlog/txt/026.txt
 (DIR) diff --git a/phlog/archive/2024/027.txt b/phlog/txt/027.txt
 (DIR) diff --git a/phlog/txt/028-crack.txt b/phlog/txt/028-crack.txt
       @@ -1,86 +0,0 @@
       -CRACK(7)               Miscellaneous Information Manual               CRACK(7)
       -
       -NNAAMMEE
       -     wwhhaatt''ss tthhee ccrraacckk?? – 2025
       -
       -DDEESSCCRRIIPPTTIIOONN
       -     It's been a while since I posted anything here. Usually, I posted after
       -     tinkering with something cool, but a few things happened and left me with
       -     very little enthusiasm and drive to write anything. Anyway, here's some
       -     general things that's happened over the year; it's just going to be a bit
       -     of a mind dump on tech related things.
       -
       -     I never stopped using gopher; in fact, my browsing habits have changed
       -     dramatically in the last year that I use gopher more. My main browser is
       -     now lynx, used in conjunction with rdrview to make the html more
       -     readable. With bongusta, lobste.rs and metafilter being daily visits on
       -     gopher, along with quarry/floodgap for searching and gopherpedia for
       -     everything in between. The only reason I open up a “normal browser” like
       -     qutebrowser or librewolf is when either cloudflare blocks the site or
       -     that new AI bot blocker anubis does. Anubis is the worst as you *need*
       -     javascript enabled for it to work, and so many sites are using it now.
       -     Some sites seem to allow you to bypass anubis if your user-agent is set
       -     to lynx, so with rdrview, set the following environment variables.
       -
       -           export RDRVIEW_BROWSER='lynx'
       -           export RDRVIEW_USER_AGENT='Lynx/2.9.2'
       -
       -     Man, the www is truly dead.
       -
       -     I am still using my nokia 105 phone daily, I have my old smart phone
       -     which sits next to my work laptop, it is purely used for the
       -     authenticator app to login for work. I wish they allowed the use of a
       -     yubikey or similar. I also have a SIP desk phone, a snom 370, which is
       -     hooked up to a local asterisk box I am running, outbound / inbound calls
       -     to this are via localphone.com. I used to work in an ISP where asterisk
       -     and voip was the main product for them, I loved playing around with it.
       -     Being of the generation brought up with redboxing, and blueboxing if you
       -     could find (or told) a number for a foreign operator as it wasn't
       -     possible to bluebox directly on BTs network. I even contributed quite
       -     heavily to rapid7 warvox wardialer many moons ago, when it was still a
       -     thing. Oh to be young again! The snom only cost £5 on ebay, and I pay
       -     £1.20 a month for my sim with lebara. It gives me unlimited text/calls
       -     and 10gb data, I don't use any data though with the dumbphone. No
       -     contract. So works out quite a cheap tech toy for the amount of time I
       -     spend messing around with it. I always wince a bit when people say they
       -     are paying £30+ a month, while also hooked into a 24 month contract -
       -     expensive!
       -
       -     OpenBSD is the go to for all my servers still, gopher and public git
       -     repos are hosted over on openbsd amsterdam. I had a replacement beelink
       -     u59 sent to me which I use for my own self-hosting, it has around 4TB,
       -     and setup as a nas, along with hosting git, asterisk and jellyfin. My
       -     daily driver is still alpine linux, if something happens to it, I will
       -     switch the desktop back over to openbsd, but it's been rock solid for
       -     well over a year now.
       -
       -     The only replacement I really want to do is a fire stick I use on my TV,
       -     it runs the jellyfin app. The problem, outwith the fact it's an amazon
       -     device, is it fails to work if there is no internet connection.  So while
       -     I do have everything selfhosted, I still can't watch stuff on jellyfin if
       -     the internet is done - madness!
       -
       -     Looking a head at tech projects, and more specifically, these are some of
       -     the gopher related projects I want to take a crack at this coming year,
       -     mostly focus on things I still use the www for. So getting them under
       -     gopher would be pretty handy!
       -
       -           - brutalist report clone
       -           - search for films now in the public domain
       -           - www page dump / archive using rdrview
       -           - pastebin type service
       -
       -SSEEEE AALLSSOO
       -     _M_e_t_a_f_i_l_t_e_r: ggoopphheerr::////ggoopphheerr..mmeettaaffiilltteerr..ccoomm//11//MMeettaaFFiilltteerr
       -     _G_o_p_h_e_r_p_e_d_i_a: ggoopphheerr::////ggoopphheerrppeeddiiaa..ccoomm//
       -     _B_o_n_g_u_s_t_a: ggoopphheerr::////ii--llooggoouutt..cczz//11//bboonngguussttaa//
       -     _L_o_b_s_t_e_._r_s: ggoopphheerr::////ttyyppeedd--hhoollee..oorrgg//11//lloobbsstteerrss
       -     _Q_u_a_r_r_y: ggoopphheerr::////ggoopphheerr..iiccuu//11//qquuaarrrryy
       -     _F_l_o_o_d_G_a_p: ggoopphheerr::////ggoopphheerr..ffllooooddggaapp..ccoomm//77//vv22//vvss
       -     _r_d_r_v_i_e_w: hhttttppss::////ggiitthhuubb..ccoomm//eeaaffeerr//rrddrrvviieeww
       -     _B_r_u_t_a_l_i_s_t _R_e_p_o_r_t _r_d_r_v_i_e_w: hhttttppss::////bbrruuttaalliisstt..rreeppoorrtt
       -
       -AAUUTTHHOORRSS
       -     jjaayy <_m_e_@_j_a_y_._s_c_o_t>
       -
       -Jay Scott                      November 22, 2025                     Jay Scott
 (DIR) diff --git a/phlog/txt/028.txt b/phlog/txt/028.txt
       @@ -0,0 +1,80 @@
       +[jay.scot]
       +[028]
       +
       +--[ What's the crack?
       +
       +
       +It's been a while since I posted anything here. Usually, I posted after
       +tinkering with something cool, but a few things happened and left me
       +with very little enthusiasm and drive to write anything. Anyway, here's
       +some general things that's happened over the year; it's just going to be
       +a bit of a mind dump on tech related things.
       +
       +
       +I never stopped using gopher; in fact, my browsing habits have changed
       +dramatically in the last year that I use gopher more. My main browser is
       +now lynx, used in conjunction with rdrview to make the html more
       +readable. With bongusta, lobste.rs and metafilter being daily visits on
       +gopher, along with quarry/floodgap for searching and gopherpedia for
       +everything in between. The only reason I open up a “normal browser” like
       +qutebrowser or librewolf is when either cloudflare blocks the site or
       +that new AI bot blocker anubis does. Anubis is the worst as you *need*
       +javascript enabled for it to work, and so many sites are using it now.
       +Some sites seem to allow you to bypass anubis if your user-agent is set
       +to lynx, so with rdrview, set the following environment variables.
       +
       +
       +        export RDRVIEW_BROWSER='lynx'
       +        export RDRVIEW_USER_AGENT='Lynx/2.9.2'
       +
       +
       +Man, the www is truly dead.
       +
       +
       +I am still using my nokia 105 phone daily, I have my old smart phone
       +which sits next to my work laptop, it is purely used for the
       +authenticator app to login for work. I wish they allowed the use of a
       +yubikey or similar. I also have a SIP desk phone, a snom 370, which is
       +hooked up to a local asterisk box I am running, outbound / inbound calls
       +to this are via localphone.com. I used to work in an ISP where asterisk
       +and voip was the main product for them, I loved playing around with it.
       +Being of the generation brought up with redboxing, and blueboxing if you
       +could find (or told) a number for a foreign operator as it wasn't
       +possible to bluebox directly on BTs network. I even contributed quite
       +heavily to rapid7 warvox wardialer many moons ago, when it was still a
       +thing. Oh to be young again! The snom only cost £5 on ebay, and I pay
       +£1.20 a month for my sim with lebara. It gives me unlimited text/calls
       +and 10gb data, I don't use any data though with the dumbphone. No
       +contract. So works out quite a cheap tech toy for the amount of time I
       +spend messing around with it. I always wince a bit when people say they
       +are paying £30+ a month, while also hooked into a 24 month contract -
       +expensive!
       +
       +
       +OpenBSD is the go to for all my servers still, gopher and public git
       +repos are hosted over on openbsd amsterdam. I had a replacement beelink
       +u59 sent to me which I use for my own self-hosting, it has around 4TB,
       +and setup as a nas, along with hosting git, asterisk and jellyfin. My
       +daily driver is still alpine linux, if something happens to it, I will
       +switch the desktop back over to openbsd, but it's been rock solid for
       +well over a year now.
       +
       +
       +The only replacement I really want to do is a fire stick I use on my TV,
       +it runs the jellyfin app. The problem, outwith the fact it's an amazon
       +device, is it fails to work if there is no internet connection.  So
       +while I do have everything selfhosted, I still can't watch stuff on
       +jellyfin if the internet is done - madness!
       +
       +
       +Looking a head at tech projects, and more specifically, these are some
       +of the gopher related projects I want to take a crack at this coming
       +year, mostly focus on things I still use the www for. So getting them
       +under gopher would be pretty handy!
       +
       +        - brutalist report clone
       +        - search for films now in the public domain
       +        - www page dump / archive using rdrview
       +        - pastebin type service
       +
       +.EOF
 (DIR) diff --git a/phlog/txt/029.txt b/phlog/txt/029.txt
       @@ -0,0 +1,133 @@
       +[jay.scot]
       +[029]
       +
       +--[ sfeed, fdm, rdrview and mutt
       +
       +
       +A few years ago I briefly mentioned my RSS setup. Since then I have
       +improved on it, and I thought it might be worth sharing how I consume
       +these feeds. It may seem like a complicated setup, and you are wondering
       +why go to this effort when you can simply use something like newsraft or
       +newsboat. Well, I don't know if it's just the feeds I view, but
       +frequently they don't include the full body of the article, and I find
       +this quite annoying. On top of that, I like to have everything under one
       +application; having that sense of familiarity is nice. It's also good to
       +have a local copy of the article, more than once I have seen articles
       +just disappear into the ether.
       +
       +
       +        sfeed ---> fdm ---> rdrview ---> mutt
       +
       +
       +Above is the basic flow of the setup and you can watch a screen recording
       +of my normal usage under the SEE ALSO section. This shows me running a
       +wrapper script that updates the feeds with sfeed, converts this to mbox,
       +and then calls fdm to do it's thing. I also open the feeds in mutt,
       +showing the article content is now within the email body, I then open a
       +few of the links in lynx/rdrview directly to show you can still view them
       +externally, if needed.
       +
       +
       +To achieve this setup, we need to do the following:
       +
       +
       +        1. sfeed_update downloads the latest feeds.
       +        2. sfeed_mbox creates an mbox file.
       +        3. fdm converts this to Maildirs based on the feed name.
       +        4. fdm rewrites the body, using rdrview.
       +        5. mutt then becomes the reader for these feeds.
       +
       +
       +I won't cover the first 2 steps in much detail as these are covered very
       +well in the sfeed documentation. In a nullshell, once you have created
       +your feeds file, you run these two commands.
       +
       +
       +        sfeedroot="$HOME/.config/sfeed"
       +        feedsdir="${sfeedroot}/feeds"
       +
       +        sfeed_update "${sfeedroot}/sfeedrc"
       +        sfeed_mbox "${feedsdir}"/* >${sfeedroot}/mbox
       +
       +
       +Step 3 is also partly covered in the sfeed documentation, but I have
       +stripped down my own fdm config below just to show at what point I call
       +the script to rewrite the body. You can run fdm with this config, because
       +the feed is disabled by default we must include the account name when
       +running it. I only do this because I use fdm to fetch my normal mail,
       +which also has a bunch of other filters, such as dumping mailing lists
       +into other locations. The main workhorse of this script is match account
       +on feeds, where it calls the action feedget:
       +
       +
       +        fdm -f ${fdmconfig} -afeeds fetch
       +
       +
       +This is the minimal fdm config you would need ~/.config/fdm/config
       +
       +
       +   # macros, paths to cache file, where we want the Maildirs to live.
       +   $path           = "%h/.mail"
       +   $feedcache      = "%h/.mail/fdm.cache"
       +   $feeddir        = "%h/.mail/feeds/"
       +   $strurl         = "(http[s]?://.*|gemini://.*)"
       +
       +   # options, setting up the cache so we know what's a new feed.
       +   set unmatched-mail keep
       +   set no-received
       +   cache "${feedcache}"
       +
       +   # accounts, disabled by default so we have to explicitly call it.
       +   account "feeds" disabled mbox "%[home]/.config/sfeed/mbox"
       +
       +   # feed actions
       +   action "feedtag" tag "msgid" value "%1"
       +   action "feedget" rewrite "%h/bin/fdm_parse_feeds.sh"
       +   action "feedsave" {
       +                   maildir "${feeddir}%1"
       +                   add-to-cache "${feedcache}" key "%[msgid]"
       +                   keep
       +   }
       +
       +   # match on any feed from sfeed mbox and call the actions.
       +   match account "feeds" {
       +                   match case "^Message-ID: (.*)" in headers action "feedtag" continue
       +                   match matched and in-cache "${feedcache}" key "%[msgid]" action keep
       +                   match $strurl action "feedget" continue
       +                   match case "^X-Feedname: (.*)" in headers action "feedsave"
       +   }
       +
       +
       +The heavy lifting of this script is when a feed is matched, it then
       +calls the action feedget. This action calls an external script which
       +either runs gemget to pull the page if its a gemini link, or if its a
       +normal web page, run rdrview. The email is then returned back to fdm
       +with the new content body.
       +
       +
       +Here is the fdm_parse_feeds.sh script.
       +
       +
       +   #!/bin/sh
       +
       +   data=$(cat)
       +   url=$(echo "$data" | grep -o -E 'https?://[^"]+|gemini://[^"]+')
       +   uri_lower="$(printf "%s" "$url" | tr '[:upper:]' '[:lower:]')"
       +
       +   case "$uri_lower" in
       +                   content=$(gemget -o - "$url")
       +                   ;;
       +                   content=$(rdrview -H "$url" | lynx -stdin --dump -force_html)
       +                   ;;
       +   esac
       +
       +   printf "%s0s" "$data" "$content"
       +
       +
       +I hope this helps anyone wanting to experiment with sfeed and fdm, or
       +looking at different ways of going a bit more offline. As always, you
       +can find all of these config my dotfiles repo, link on the gopher
       +homepage if needed.
       +
       +
       +.EOF