| Going back to the old style phlog, mdoc is a pain. - gopherhole - My gopherhole… | |
| git clone git://jay.scot/gopherhole | |
| Log | |
| Files | |
| Refs | |
| --- | |
| commit 5c32b549ea87f47fa97e58040f2721d8f555440c | |
| parent a12d07bab3992a669bc40bdeb974264641606d12 | |
| Author: Jay Scott <[email protected]> | |
| 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(-) | |
| --- | |
| diff --git a/.gitignore b/.gitignore | |
| @@ -1,2 +1,2 @@ | |
| drafts/ | |
| -files | |
| +files/ | |
| 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 | |
| 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* \ | |
| 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|p… | |
| + | |
| +[ 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 e… | |
| +[0|2023-09-03 ... Ansible no more, moved all services to containers|/phlog/txt… | |
| +[0|2023-08-13 ... Earned my Terraform certification but not for a good reason|… | |
| +[0|2023-07-06 ... A ready to read archive of old gopher Usenet groups|/phlog/t… | |
| +[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… | |
| +[0|2023-04-30 ... The lack of time for geeky tasks!|/phlog/txt/018.txt|server|… | |
| +[0|2023-03-11 ... Checking out gaming on OpenBSD|/phlog/txt/017.txt|server|por… | |
| +[0|2023-02-18 ... Messing with pkg_info and ditching password-store|/phlog/txt… | |
| +[0|2023-02-11 ... An OpenBSD manpage led me down a rabbit hole|/phlog/txt/015.… | |
| +[0|2023-02-05 ... Re-evaluating my local mail setup with OpenSMTPD|/phlog/txt/… | |
| +[0|2023-02-03 ... Finally, I switched over to OpenBSD|/phlog/txt/013.txt|serve… | |
| +[0|2023-01-29 ... Automating my infra deployment and configuration|/phlog/txt/… | |
| +[0|2023-01-14 ... Reducing my footprint, using a mini-pc|/phlog/txt/011.txt|se… | |
| + | |
| +[ 2022 ] | |
| + | |
| +[0|2022-09-28 ... Convert mbox to maildir using fdm|/phlog/txt/010.txt|server|… | |
| +[0|2022-09-13 ... A true cheap dumbphone,impossible?|/phlog/txt/009.txt|server… | |
| +[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|… | |
| +[0|2022-03-01 ... Association of really cruel viruses (arcv)|/phlog/txt/006.tx… | |
| +[0|2022-01-02 ... Why I dropped freebsd after a month|/phlog/txt/005.txt|serve… | |
| + | |
| +[ 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|… | |
| +[0|2021-09-01 ... So much bloat around dotfiles|/phlog/txt/001.txt|server|port] | |
| 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 [email protected] | |
| 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 [email protected] | |
| diff --git a/phlog/archive/2021/001.txt b/phlog/txt/001.txt | |
| diff --git a/phlog/archive/2021/002.txt b/phlog/txt/002.txt | |
| diff --git a/phlog/archive/2021/003.txt b/phlog/txt/003.txt | |
| diff --git a/phlog/archive/2021/004.txt b/phlog/txt/004.txt | |
| diff --git a/phlog/archive/2022/005.txt b/phlog/txt/005.txt | |
| diff --git a/phlog/archive/2022/006.txt b/phlog/txt/006.txt | |
| diff --git a/phlog/archive/2022/007.txt b/phlog/txt/007.txt | |
| diff --git a/phlog/archive/2022/008.txt b/phlog/txt/008.txt | |
| diff --git a/phlog/archive/2022/009.txt b/phlog/txt/009.txt | |
| diff --git a/phlog/archive/2022/010.txt b/phlog/txt/010.txt | |
| diff --git a/phlog/archive/2023/011.txt b/phlog/txt/011.txt | |
| diff --git a/phlog/archive/2023/012.txt b/phlog/txt/012.txt | |
| diff --git a/phlog/archive/2023/013.txt b/phlog/txt/013.txt | |
| diff --git a/phlog/archive/2023/014.txt b/phlog/txt/014.txt | |
| diff --git a/phlog/archive/2023/015.txt b/phlog/txt/015.txt | |
| diff --git a/phlog/archive/2023/016.txt b/phlog/txt/016.txt | |
| diff --git a/phlog/archive/2023/017.txt b/phlog/txt/017.txt | |
| diff --git a/phlog/archive/2023/018.txt b/phlog/txt/018.txt | |
| diff --git a/phlog/archive/2023/019.txt b/phlog/txt/019.txt | |
| diff --git a/phlog/archive/2023/020.txt b/phlog/txt/020.txt | |
| diff --git a/phlog/archive/2023/021.txt b/phlog/txt/021.txt | |
| diff --git a/phlog/archive/2023/022.txt b/phlog/txt/022.txt | |
| diff --git a/phlog/archive/2023/023.txt b/phlog/txt/023.txt | |
| diff --git a/phlog/archive/2023/024.txt b/phlog/txt/024.txt | |
| diff --git a/phlog/archive/2023/025.txt b/phlog/txt/025.txt | |
| diff --git a/phlog/archive/2023/026.txt b/phlog/txt/026.txt | |
| diff --git a/phlog/archive/2024/027.txt b/phlog/txt/027.txt | |
| 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” l… | |
| - 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::////ggoopphhe… | |
| - _G_o_p_h_e_r_p_e_d_i_a: ggoopphheerr::////ggoopph… | |
| - _B_o_n_g_u_s_t_a: ggoopphheerr::////ii--llooggoou… | |
| - _L_o_b_s_t_e_._r_s: ggoopphheerr::////ttyyppeedd-… | |
| - _Q_u_a_r_r_y: ggoopphheerr::////ggoopphheerr..iic… | |
| - _F_l_o_o_d_G_a_p: ggoopphheerr::////ggoopphheerr.… | |
| - _r_d_r_v_i_e_w: hhttttppss::////ggiitthhuubb..cco… | |
| - _B_r_u_t_a_l_i_s_t _R_e_p_o_r_t _r_d_r_v_i_e_w: hh… | |
| - | |
| -AAUUTTHHOORRSS | |
| - jjaayy <_m_e_@_j_a_y_._s_c_o_t> | |
| - | |
| -Jay Scott November 22, 2025 Jay Scott | |
| 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 | |
| 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" … | |
| + match matched and in-cache "${feedcache}" key "%[msgid]" ac… | |
| + 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_htm… | |
| + ;; | |
| + 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 |