{
"version": "https://jsonfeed.org/version/1.1",
"title": "Newsfeed",
"items": [
{
	"id": "gopher://codemadness.org/1/phlog/susmb",
	"date_published": "2026-03-06T00:00:00Z",
	"title": "susmb: unprivileged mounting of SMB/CIFS shares via FUSE",
	"url": "gopher://codemadness.org/1/phlog/susmb",
	"authors": [{"name": "Hiltjo"}],
	"content_text": "susmb: unprivileged mounting of SMB/CIFS shares via FUSE"
},
{
	"id": "gopher://codemadness.org/1/phlog/chess-puzzles",
	"date_published": "2024-02-02T00:00:00Z",
	"title": "Chess puzzle book generator",
	"url": "gopher://codemadness.org/1/phlog/chess-puzzles",
	"authors": [{"name": "Hiltjo"}],
	"content_text": "Chess puzzle book generator"
},
{
	"id": "gopher://codemadness.org/1/phlog/xargs",
	"date_published": "2023-11-22T00:00:00Z",
	"title": "xargs: an example for parallel batch jobs",
	"url": "gopher://codemadness.org/1/phlog/xargs",
	"authors": [{"name": "Hiltjo"}],
	"content_text": "xargs: an example for parallel batch jobs"
},
{
	"id": "gopher://codemadness.org/1/phlog/youtube-feed",
	"date_published": "2023-11-20T00:00:00Z",
	"title": "Improved Youtube RSS/Atom feed",
	"url": "gopher://codemadness.org/1/phlog/youtube-feed",
	"authors": [{"name": "Hiltjo"}],
	"content_text": "Improved Youtube Atom feed by adding video duration and filtering away shorts"
},
{
	"id": "gopher://codemadness.org/1/phlog/webdump",
	"date_published": "2023-11-20T00:00:00Z",
	"title": "webdump HTML to plain-text converter",
	"url": "gopher://codemadness.org/1/phlog/webdump",
	"authors": [{"name": "Hiltjo"}],
	"content_text": "webdump HTML to plain-text converter"
},
{
	"id": "gopher://codemadness.org/1/phlog/mailservice",
	"date_published": "2023-10-25T00:00:00Z",
	"title": "Setup your own mail paste service",
	"url": "gopher://codemadness.org/1/phlog/mailservice",
	"authors": [{"name": "Hiltjo"}],
	"content_text": "Setup your own mail paste service using mblaze"
},
{
	"id": "gopher://codemadness.org/1/phlog/todo",
	"date_published": "2022-07-01T00:00:00Z",
	"title": "A simple TODO application",
	"url": "gopher://codemadness.org/1/phlog/todo",
	"authors": [{"name": "Hiltjo"}],
	"content_text": "A simple TODO application workflow"
},
{
	"id": "gopher://codemadness.org/1/phlog/totp",
	"date_published": "2022-03-23T00:00:00Z",
	"title": "2FA TOTP without crappy authenticator apps",
	"url": "gopher://codemadness.org/1/phlog/totp",
	"authors": [{"name": "Hiltjo"}],
	"content_text": "Using 2FA TOTP without crappy authenticator apps"
},
{
	"id": "gopher://codemadness.org/1/phlog/openbsd-riscv64-vm",
	"date_published": "2021-10-23T00:00:00Z",
	"title": "Setup an OpenBSD RISCV64 VM in QEMU",
	"url": "gopher://codemadness.org/1/phlog/openbsd-riscv64-vm",
	"authors": [{"name": "Hiltjo"}],
	"content_text": "Setup an OpenBSD RISCV-64 VM in QEMU"
},
{
	"id": "gopher://codemadness.org/1/phlog/sfeed_curses",
	"date_published": "2020-06-25T00:00:00Z",
	"title": "Sfeed_curses: a curses UI front-end for sfeed",
	"url": "gopher://codemadness.org/1/phlog/sfeed_curses",
	"authors": [{"name": "Hiltjo"}],
	"content_text": "Sfeed_curses is a curses UI front-end for the sfeed RSS/Atom parser"
},
{
	"id": "gopher://codemadness.org/1/phlog/hurl",
	"date_published": "2019-11-10T00:00:00Z",
	"title": "hurl: HTTP, HTTPS and Gopher file grabber",
	"url": "gopher://codemadness.org/1/phlog/hurl",
	"authors": [{"name": "Hiltjo"}],
	"content_text": "hurl: HTTP, HTTPS and Gopher file grabber"
},
{
	"id": "gopher://codemadness.org/1/phlog/json2tsv",
	"date_published": "2019-10-13T00:00:00Z",
	"title": "json2tsv: a JSON to TSV converter",
	"url": "gopher://codemadness.org/1/phlog/json2tsv",
	"authors": [{"name": "Hiltjo"}],
	"content_text": "json2tsv: a JSON to TAB-Separated Value converter"
},
{
	"id": "gopher://codemadness.org/1/phlog/openbsd-autoinstall",
	"date_published": "2019-04-24T00:00:00Z",
	"title": "OpenBSD: setup a local auto-installation server",
	"url": "gopher://codemadness.org/1/phlog/openbsd-autoinstall",
	"authors": [{"name": "Hiltjo"}],
	"content_text": "OpenBSD: setup a local auto-installation server"
},
{
	"id": "gopher://codemadness.org/1/phlog/idiotbox",
	"date_published": "2019-02-10T00:00:00Z",
	"title": "Idiotbox: Youtube interface",
	"url": "gopher://codemadness.org/1/phlog/idiotbox",
	"authors": [{"name": "Hiltjo"}],
	"content_text": "Idiotbox: Youtube interface"
},
{
	"id": "gopher://codemadness.org/1/phlog/gopher-proxy",
	"date_published": "2018-08-17T00:00:00Z",
	"title": "Gopher HTTP proxy",
	"url": "gopher://codemadness.org/1/phlog/gopher-proxy",
	"authors": [{"name": "Hiltjo"}],
	"content_text": "Gopher HTTP proxy"
},
{
	"id": "gopher://codemadness.org/1/phlog/paste-service",
	"date_published": "2018-03-10T00:00:00Z",
	"title": "Setup your own file paste service",
	"url": "gopher://codemadness.org/1/phlog/paste-service",
	"authors": [{"name": "Hiltjo"}],
	"content_text": "Howto setup your own secure file paste service"
},
{
	"id": "gopher://codemadness.org/1/phlog/setup-git-hosting",
	"date_published": "2018-02-25T00:00:00Z",
	"title": "Setup your own git hosting service",
	"url": "gopher://codemadness.org/1/phlog/setup-git-hosting",
	"authors": [{"name": "Hiltjo"}],
	"content_text": "Howto setup your own git hosting service"
},
{
	"id": "gopher://codemadness.org/1/phlog/openbsd-sparc64-vm",
	"date_published": "2017-12-11T00:00:00Z",
	"title": "Setup an OpenBSD SPARC64 VM in QEMU",
	"url": "gopher://codemadness.org/1/phlog/openbsd-sparc64-vm",
	"authors": [{"name": "Hiltjo"}],
	"content_text": "Setup an OpenBSD SPARC64 VM in QEMU"
},
{
	"id": "gopher://codemadness.org/1/phlog/tscrape",
	"date_published": "2017-09-24T00:00:00Z",
	"title": "Tscrape: a Twitter scraper",
	"url": "gopher://codemadness.org/1/phlog/tscrape",
	"authors": [{"name": "Hiltjo"}],
	"content_text": "Tscrape: a Twitter scraper"
},
{
	"id": "gopher://codemadness.org/1/phlog/datatable",
	"date_published": "2017-09-24T00:00:00Z",
	"title": "jsdatatable: a small datatable Javascript",
	"url": "gopher://codemadness.org/1/phlog/datatable",
	"authors": [{"name": "Hiltjo"}],
	"content_text": "jsdatatable: a small datatable Javascript"
},
{
	"id": "gopher://codemadness.org/1/phlog/stagit-gopher",
	"date_published": "2017-08-04T00:00:00Z",
	"title": "Stagit-gopher: a static git page generator for gopher",
	"url": "gopher://codemadness.org/1/phlog/stagit-gopher",
	"authors": [{"name": "Hiltjo"}],
	"content_text": "a static git page generator for gopher"
},
{
	"id": "gopher://codemadness.org/1/phlog/saait",
	"date_published": "2017-06-10T00:00:00Z",
	"title": "Saait: a boring HTML page generator",
	"url": "gopher://codemadness.org/1/phlog/saait",
	"authors": [{"name": "Hiltjo"}],
	"content_text": "Saait: a boring HTML page generator"
},
{
	"id": "gopher://codemadness.org/1/phlog/stagit",
	"date_published": "2017-05-10T00:00:00Z",
	"title": "Stagit: a static git page generator",
	"url": "gopher://codemadness.org/1/phlog/stagit",
	"authors": [{"name": "Hiltjo"}],
	"content_text": "a static git page generator"
},
{
	"id": "gopher://codemadness.org/1/phlog/openbsd-httpd-and-cgit",
	"date_published": "2015-07-05T00:00:00Z",
	"title": "OpenBSD httpd, slowcgi and cgit",
	"url": "gopher://codemadness.org/1/phlog/openbsd-httpd-and-cgit",
	"authors": [{"name": "Hiltjo"}],
	"content_text": "OpenBSD httpd, slowcgi and cgit"
},
{
	"id": "gopher://codemadness.org/1/phlog/twitch-interface",
	"date_published": "2014-11-23T00:00:00Z",
	"title": "twitch: application to watch Twitch streams",
	"url": "gopher://codemadness.org/1/phlog/twitch-interface",
	"authors": [{"name": "Hiltjo"}],
	"content_text": "twitch: application to watch Twitch streams"
},
{
	"id": "gopher://codemadness.org/1/phlog/userscript-focus-input-field",
	"date_published": "2014-03-02T00:00:00Z",
	"title": "Userscript: focus input field",
	"url": "gopher://codemadness.org/1/phlog/userscript-focus-input-field",
	"authors": [{"name": "Hiltjo"}],
	"content_text": "Userscript to focus the first input field on a page with a hotkey"
},
{
	"id": "gopher://codemadness.org/1/phlog/userscript-youtube-circumvent-age-verification",
	"date_published": "2013-02-21T00:00:00Z",
	"title": "Userscript: Youtube circumvent age verification",
	"url": "gopher://codemadness.org/1/phlog/userscript-youtube-circumvent-age-verification",
	"authors": [{"name": "Hiltjo"}],
	"content_text": "Userscript to circumvent Youtube age verification and redirect to the video"
},
{
	"id": "gopher://codemadness.org/1/phlog/userscript-block-stupid-fonts",
	"date_published": "2012-10-21T00:00:00Z",
	"title": "Userscript: block stupid fonts",
	"url": "gopher://codemadness.org/1/phlog/userscript-block-stupid-fonts",
	"authors": [{"name": "Hiltjo"}],
	"content_text": "Userscript to whitelist your favorite fonts and block the rest"
},
{
	"id": "gopher://codemadness.org/1/phlog/sfeed",
	"date_published": "2011-04-01T00:00:00Z",
	"title": "Sfeed: simple RSS and Atom parser",
	"url": "gopher://codemadness.org/1/phlog/sfeed",
	"authors": [{"name": "Hiltjo"}],
	"content_text": "Sfeed is a simple RSS and Atom parser (and format programs to add reader functionality)"
},
{
	"id": "gopher://codemadness.org/1/phlog/vim-theme-relaxed",
	"date_published": "2011-01-07T00:00:00Z",
	"title": "Vim theme: relaxed",
	"url": "gopher://codemadness.org/1/phlog/vim-theme-relaxed",
	"authors": [{"name": "Hiltjo"}],
	"content_text": "a dark VIM theme I made and use on a daily basis"
},
{
	"id": "gopher://codemadness.org/1/phlog/seturgent",
	"date_published": "2010-10-31T00:00:00Z",
	"title": "Seturgent: set urgency hints for X applications",
	"url": "gopher://codemadness.org/1/phlog/seturgent",
	"authors": [{"name": "Hiltjo"}],
	"content_text": "Seturgent is a small utility to set an application it's urgency hint"
},
{
	"id": "gopher://codemadness.org/1/phlog/dwm",
	"date_published": "2010-08-12T00:00:00Z",
	"title": "DWM-hiltjo: my windowmanager configuration",
	"url": "gopher://codemadness.org/1/phlog/dwm",
	"authors": [{"name": "Hiltjo"}],
	"content_text": "My DWM configuration; a few added features to suit my needs"
},
{
	"id": "gopher://codemadness.org/1/phlog/query-unused-css-rules-on-current-document-state",
	"date_published": "2010-04-21T00:00:00Z",
	"title": "Query unused CSS rules on current document state",
	"url": "gopher://codemadness.org/1/phlog/query-unused-css-rules-on-current-document-state",
	"authors": [{"name": "Hiltjo"}],
	"content_text": "How to see all the rules in a stylesheet (CSS) that are not used for the current document"
},
{
	"id": "gopher://codemadness.org/1/phlog/driconf",
	"date_published": "2009-07-05T00:00:00Z",
	"title": "Driconf: enabling S3 texture compression on Linux",
	"url": "gopher://codemadness.org/1/phlog/driconf",
	"authors": [{"name": "Hiltjo"}],
	"content_text": "driconf: enabling S3 texture compression"
},
{
	"id": "gopher://codemadness.org/1/phlog/getting-the-usb-powerline-bridge-to-work-on-linux",
	"date_published": "2009-04-13T00:00:00Z",
	"title": "Getting the USB-powerline bridge to work on Linux",
	"url": "gopher://codemadness.org/1/phlog/getting-the-usb-powerline-bridge-to-work-on-linux",
	"authors": [{"name": "Hiltjo"}],
	"content_text": "A guide to get a USB-powerline bridge with the Intellon 51x1 chipset working on Linux"
},
{
	"id": "gopher://codemadness.org/1/phlog/gothic",
	"date_published": "2009-04-12T00:00:00Z",
	"title": "Gothic 1 game guide",
	"url": "gopher://codemadness.org/1/phlog/gothic",
	"authors": [{"name": "Hiltjo"}],
	"content_text": "Gothic 1 game guide with some useful tips"
}]
}
