diff --git a/.gitignore b/.gitignore index 5ebf894c..6a52c615 100644 --- a/.gitignore +++ b/.gitignore @@ -9,6 +9,7 @@ resources/ node_modules/ docs/ +*.lock *.class .certificates diff --git a/config.toml b/config.toml index 37d1b8ee..0a503417 100644 --- a/config.toml +++ b/config.toml @@ -58,6 +58,12 @@ enableGitInfo = true disable = false privacyEnhanced = true +# added since Hugo 0.9x to allow babel to be executed +[security] + enableInlineShortcodes = false + [security.exec] + allow = ['^dart-sass-embedded$', '^go$', '^npx$', '^postcss$', 'babel'] + [[menu.main]] name = "Brain Baking" pre = " " @@ -80,8 +86,15 @@ enableGitInfo = true name = "About" pre = " " url = "/about" + weight = 4 + +[[menu.mainright]] + name = "Links" + pre = " " + url = "/links" weight = 5 [outputs] home = ["HTML", "RSS"] page = ["HTML"] + diff --git a/content/links.md b/content/links.md new file mode 100644 index 00000000..266c5349 --- /dev/null +++ b/content/links.md @@ -0,0 +1,15 @@ +--- +title: Fellow Brain Bakers +--- + +_Brain Baking_ never happens in isolation. This page contains a list of curious websites and fellow bloggers that deserve a shout-out. It is a nostalgic throwback to the nineties _links_ pages, like my recently excavated [2007 browser bookmarks](/museum/fav.html). + +Enjoy the serendipitous discoveries by clicking through! + +## Blogroll + +This is an automatically updated and maintained blogroll by my RSS reader. Those who'd rather download the `.opml` file, [here you go](https://raw.githubusercontent.com/wgroeneveld/brainbaking/master/data/blogroll.xml). + +Visit [blogroll.org](https://blogroll.org/) for a superior humanly curated list of "fine personal & independent blogs". It's a great way to get to know new people and sites. + +{{< blogroll >}} diff --git a/content/post/2022/01/generating-a-blogroll-with-opml-in-hugo.md b/content/post/2022/01/generating-a-blogroll-with-opml-in-hugo.md new file mode 100644 index 00000000..edcc1693 --- /dev/null +++ b/content/post/2022/01/generating-a-blogroll-with-opml-in-hugo.md @@ -0,0 +1,74 @@ +--- +title: Generating a Blogroll With OPML in Hugo +date: 2022-01-20T20:16:00+01:00 +categories: + - webdesign +tags: + - hugo +--- + +Blogrolls have been on my mind lately. It's a rather fancy word for a more common but far from mundane corner of your website, called a _links_ section. Ever since [my first website in 1998](/museum/1998/)---you can marvel at my old junk at the [Brain Baking Museum](/museum)---I've had a links section. But for some reason, on the latest revision of this site, it's been gone for years. + +A links page is fun for a couple of reasons: + +- It shows what the website owner is interested in; +- It's a chance to give a shout-out to fellow _websiters_ (if I'd type _blogger_ here, I'd be too limiting); +- It can be used to play the im-bored-lets-click-through-stuff game (isn't that the purpose of those webrings?). + +Especially since I've been encountering my own site in the midst of the links of others (thank you!), I felt a bit bad for not returning the favor. Enter the [/links page](/links)! + +After getting nostalgic (again...), I rummaged through my digital archive to dig up [my 2007 browser bookmarks](/museum/fav.html). It's a lot of fun to scroll through and instantly gives an impression of what I was up to back then (Infinity engine game modding, Nintendo DS programming, Wizardry 8 guide writing, retro gaming, BSD and Linux kernel programming, Magic the Gathering, hip-hop). + +So much yet so little has changed! It's a bit embarrassing. Or should I be proud? I'm not sure. I feel a bit conflicted when looking back at it. Like Brit Butler wrote in "[Deliberate Action](https://blog.kingcons.io/posts/Deliberate-Action.html)": + +> A tremendous amount has happened, but I feel like I've lost the boy I remember from college a little. He was excited about things: video games, music, common lisp, poetry. + +Anyway. As Ruben would write: _I digress_. + +## Hugo and XML parsing + +Since nowadays I manage my digital intake via my RSS reader, which already contains an XML-based list of links in an `.opml` file, I took a stab at automating this process. + +Recently, Hugo implemented [XML Data support](https://github.com/gohugoio/hugo/commit/0eaaa8fee37068bfc8ecfb760f770ecc9a7af22a) (part of the `0.92.0` release). This means chucking an XML file in `/data` automatically exposes it in the template engine, making iterating over entries using `{{ range $.Site.Data.blogroll.body.outline }}` trivial. Or so I thought. + +The supplied example in the commit message of the patch is very brief and only covers retrieving contents of XML tags: `sup` can be accessed via the not-so-special `{{ .title }}` shortcode, as it becomes a Go property. But OPML outline XML is something like this: + +```xml + +``` + +All attributes, no content: the `outline` tag is auto-closed (`/>`). I had no clue how to fetch that data, as dumping the entire variable printed a map of keys prepended with a dash. Why? It seems that someone else submitted an issue to the hugoDocs repository, so I took the effort to summarize changes into a pull request. Accessing properties, apparently, is done via `{{ index $body.outline "-title" }}`. + +I've never used Hugo's [index function](https://gohugo.io/functions/index-function/) before. Having to prepend attribute names with `-` feels awkward. I presume the changes are still young and a bit untested. Hopefully it'll evolve and stabilize over time. The problem right now is a total lack of documentation. Hopefully this blog post helps alleviate the problem a bit. + +## NetNewsWire OPML exports + +Where does the OPML file come from? NetNewsWire keeps track of local subscriptions ("On My Mac") in a file somewhere (`/Users/me/Library/Containers/com.ranchero.NetNewsWire-Evergreen/Data/Library/Application\ Support/NetNewsWire/Accounts/OnMyMac/Subscriptions.opml`). Copying over suffices, but of course does not auto-update when I add more feeds in the reader. Other options I've considered: + +- Softlinks. Nothing but trouble while committing into git, tried a lot of different approaches; +- Hardlinks. Borked in MacOS. As soon as NetNewsWire makes a change, the hardlink is severed; +- Third party hardlink cmd-based solutions. Didn't work; +- Write a script that parses it into JSON and add to the CI. Too complicated; +- Add a stupid copy command into the user's crontab. + +The last option is currently in use, although not ideal. Oh well. + +Another problem is the lack of metadata, or description information. The [/links](/links) page contains little information of the link itself that way, especially if the blogger's `` tag is a bit... woozy. Like, "Articles", for instance. Any RSS feed, such as mine, contains a (proper) title and description: + +```xml +<channel> + <title>Brain Baking + http://localhost:1313/ + Freshly Baked Thoughts by Wouter Groeneveld + ... + +``` + +It somehow doesn't get saved into the OPML, although there's a description tag---it's [hardcoded to the empty string](https://github.com/Ranchero-Software/NetNewsWire/issues/3406). Why? I'd love to hack away in the Swift code but could use some help. + + +## Bonus material + +Hey, this site also supports dark mode from now on! It seems to be a thing and after discovering MacOS Montery's "Auto" Appearance switch setting, I couldn't resist. Enjoy! + +![](../darkmode.gif "Switching from light to dark mode in MacOS.") diff --git a/content/post/2022/01/winnie-lim-on-rebuilding-oneself.md b/content/post/2022/01/winnie-lim-on-rebuilding-oneself.md index 639e0bc7..15c3d611 100644 --- a/content/post/2022/01/winnie-lim-on-rebuilding-oneself.md +++ b/content/post/2022/01/winnie-lim-on-rebuilding-oneself.md @@ -19,7 +19,7 @@ It takes a lot of courage to do so---to write, not about the things you're good But my public writing does not come close to Winnie's blog. I simply don't have the guts to do so. These things, for now, stay in my analog journal. -> I don't with to wait till death is imminent for me to realize that I should have loved deeper, traveled further, written more. +> I don't want to wait till death is imminent for me to realize that I should have loved deeper, traveled further, written more. Why do these quotes grab me by the throat? Is it because they're deeply infused with philosophy, which I'm also fascinated by? Is it because her thinking patterns align with mine? Is it out of respect for opening up, admitting to the sensitivity? diff --git a/content/post/2022/2022.md b/content/post/2022/2022.md new file mode 100644 index 00000000..b1c7e9f4 --- /dev/null +++ b/content/post/2022/2022.md @@ -0,0 +1,9 @@ +--- +title: "Archive by year: 2022" +type: archive +icontag: tag +url: /post/2022/ +disableComments: true +--- + +{{< archive 2022 >}} diff --git a/content/tags/_index.md b/content/tags/_index.md index 58b2ccfd..6a22fc54 100644 --- a/content/tags/_index.md +++ b/content/tags/_index.md @@ -40,7 +40,8 @@ I also write about retro PC/Handheld gaming and actual _bread baking_ on sister ### By year -- [2021](/post/2021) ... when I got that shiny new M1 MacBook Air +- [2022](/post/2022) ... when working from home was still a thing +- [2021](/post/2021) ... when I got back into both retro (80486) and modern (M1) hardware - [2020](/post/2020) ... when I paid attention to webdesign and wrote a book about baking - [2019](/post/2019) ... when computing education articles started appearing - [2018](/post/2018) ... when my PhD work started and I tried writing essays in Dutch diff --git a/data/blogroll.xml b/data/blogroll.xml new file mode 100644 index 00000000..9df7e2f9 --- /dev/null +++ b/data/blogroll.xml @@ -0,0 +1,62 @@ + + + + +On My Mac + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/layouts/shortcodes/blogroll.html b/layouts/shortcodes/blogroll.html new file mode 100644 index 00000000..8354cad4 --- /dev/null +++ b/layouts/shortcodes/blogroll.html @@ -0,0 +1,16 @@ + +{{ range $.Site.Data.blogroll.body.outline }} +

{{ index . "-title" }}

+ + +{{ end }} + diff --git a/static/museum/fav.html b/static/museum/fav.html new file mode 100644 index 00000000..c6360b6c --- /dev/null +++ b/static/museum/fav.html @@ -0,0 +1,460 @@ + + + +Bookmarks +

Bookmarks - 11/01/2007

+ +

+

Bookmarks Toolbar Folder

+

+

Master HCI Informatica +
Wikipedia +
Shrimp Refuge +
Wiz8 Vault +
BoardGameGeek +
Gaming Age Forum +
NSider Forums +
My Ebay +

+

Live Feeds!

+

+

4ColorRebellion Feed +
BetaNews Feed +
Jefklak's Codex Feed +
Slashdot Feed +

+

Blowfish encryption +
Wikipedia Main Page +
+

Video Games!

+

+

PC: Modifications

+

+

Infinity Engine

+

+

Baldurdash Game Fixes +
BG2 Portrait Portal +
BG2 // NWN Portrait Gallery +
Pocket Plane Group +
Spellhold Studios +
The Black Wyrm's Lair Mods +
The Chosen of Mystra +
The Gibberlings Three +
WeiDU Mod Set +

+

Neverwinter Nights

+

+

Pack: Player Resource Consortium +
Pack: Community Expansion Pack +
Modules: GameOgre NWN Lair +
Modules: Neverwinter Nights Stratics +
Modules: Neverwinter Vault IGN +
Modules: Shadowlords & Dreamcatcher +

+

Unreal Tournament 2004

+

+

Alien Swarm - TopDown Shooter Mod +
Frag.Ops - Realism Conversion +
LawDogs [beta] - Western Conversion +
Red Orchestra - WOIl Conversion +
TO:Crossfire Website +
+
Icculus.org UT2004 Linux FAQ +
Maps4mods - UT2004 mod maps +
Unreal Tournament - ut2004 / downloads +
UT 2004 Topsites - modDB.com +

+

KOTOR II: Restoration Project +
ModDB - Every Mods! +
Raven Shield Mods, Maps and Info +
Seven Towers: Exult Mods +
Warcraft III Maps & Mods +

+

Handheld: Homebrew

+

+

Programming

+

+

DSWiki - Graphic modes +
Introduction to Nintendo DS Programming +
libnds devkitpro Documentation +
Programmers Guide to Nintendo DS +

+

DarkFader.net - DS Passme +
Dev-Scene/DS Homebrew Files +
Drunken Coders GBA/DS dev news +
GBADev news/forums +
GBATemp GBA Release List +
Goomba Color aplpha +
Homebrew Nintendo DS Development +
Nintendo DS Emulation News DS DCEmu +
PocketHeaven.com index +

+

Console: Nintendo

+

+

4 color rebellion [Nintendo blog] +
Cubed3 | Nintendo Games Database +
DS-Gamer: 100% Nintendo DS! +
Dual Screen Radio online show +
Go Nintendo Blog +
Wii NIntendo Blog +

+

Games: Specific & Help

+

+

Arcanum

+

+

Arcanum Maps & NPCs - Mike's place +
Bigorrin's Arcanum Help e.d. +
Car Arcanum MOD +
Dimensions of Arcanum - Workshop +
GameFAQs Walktrough +
Terra Arcanum >> Troika Games +

+

Jagged Alliance 2

+

+

Jagged Alliance 2 Basis ( Ja2 ) +
JA2 Mercenary and NPC Statistics +
Jagged Alliance Galaxy Forum +
JA2 Gamefaqs Walktrough +

+

Might & Magic

+

+

Might and Magic - The Tome of Knowledge +
Might & Magic VII Guide +
Might & Magic VIII - MMWorld DE +
Might&Magic VIII - Walkthrough +

+

Wizardry 8

+

+

*Cosmic Forge* Editor for Wiz6/7/8 +
Avenstar's Wizardry 8 Resource Page +
Ironworks Forum: Wiz 8 TIPS +
Jandralls Wizardry 8 Stuff +
Spydah's Wizardry Guide Database +
Wiz8 Maps & walktrough +
Wizardry 8 IGN Spoiler Board +
Wizardry 8 FAQ Page +
Wolfie's Wizardry 8 Info Site +

+

Civ4 Complete Walthrough +
Diablo 2 @ Diabloii.net +
Emperor Heaven: Housing Block Essay +
Ether Planes - Etherlords I/II Replays +
Kiya´s Divine Divinity +
Flamestryke's Wiz8/MM7-8 +
Mike's RPG Center +
No Mutants Allowed - Fallout! +
Simtropolis 4.0 +

+

Games: News & Reviews

+

+

3D Gamers - Download Patches +
IGN Games - PC Section +
ToTheGame Release-Lists +
The Adrenaline Vault +
+
Adventure Gamers +
MMORPG.COM - Headquarters +
rpg codex index +
RPGDot - the fastest news +
RPG Watch +
Sorcerer's Place - NWN, D&D News +

+

Games: Retronauts

+

+

Retro: Abandonware

+

+

Abandonia - Home of abandonware DOS games +
Home of the Underdogs +
Lost Treasures Fr - oldies en français +
MobyGames: Game Browser +
NT Compatibility Database - Games +
Old Games on New PCs Forum +
The Good Old Days +

+

Retro: Console Minded

+

+

Console Classix: Gameboy Titles +
FlyingOmelette Retro Stuff +
NINTENDO LAND - classic games. +
PCEngine Catalog Project +
Video Game Sprites +
ToastyFrog.com Retronauts +

+

Retro: Game Specific

+

+

The Castlevania Dungeon +
Tactics Ogre: The Knight of Lodis +
Tactics Ogre: Let Us Cling Together +
Lode Runner: The Legend Returns +

+

Build Engine games on WinXP +
Video Game Museum (GBA Endings e.a.) +
VGMusic MIDI Archive +
ScummVM Adventure game interpreter +
Short Story - FF Soundtracks/movies etc +
Short Story - Slyph.org +
The Hunt: Rise of the Triad +

+

Adventure Legends downloads +
Galbadia Hotel - Video Game Music +
GameFAQs resource +
Game TV Commercials +
Gaming FM Streaming Radio +
PC Savegames Downloads +
Replacementdocs Game Manuals +
Speed Demos Archive - Game List +
The Cover Project +

+

Hardware

+

+

AnandTech: hardware analysis +
CNET.com HW Reviews +
Guru3D Graphic Drivers +
HEXUS.net - UK Technology News +
HowardForums: SE Mobile +
Lpatopvideo2Go download INFs +
PS2: Component VS Composite +

+

Unix Documentation

+

+

Articles & Howto's

+

+

Frank's Wine Corner +
Phil!'s ZSH Prompt +
RoxWiki - Icon Themes +
Converting mac Icons to PNG via Linux +
WineX Tips n Tricks +
Quick Bash Scripting Guide +

+

Berkeley Software Distributions

+

+

BSDForums.org - search +
Comprehensive Guide To FreeBSD +
FreeBSD Handbook +
FreeBSD Ports - Search +
Setting up a PF firewall @ openBSD +
Why switch Linux > BSD ? +

+

Linux Kernel Coding

+

+

ACPI DSDT initrd Patches +
Con Kolivas's kernel patches +
KernelTrap News +
Linux Kernel Programming Guide +

+

Window Managers

+

+

E17 CVS Documentation +
FVWM Beginners Guide - Index +
FVWM - Crystal - Gallery +
FVWM - Man page - index +
Fvwm Lair Forum +
PEM's Gentoo / Fvwm +
XFCE4 Desktop Environment +

+

Collective Lib for Linux Knowledge: ArsLinux +
Gentoo Linux Wiki +
Linux Counter || 333296 +
Lynucs.org Screenshot Archive +
The Linux Documentation Project +

+

Programming

+

+

C // C++

+

+

C++ reference libraries +
CodeGuru: Visual C++ / C++ +
OpenGL tutorials -- Game Tutorials +
Qt 3.3 Reference Documentation +
SDL Library Documentation v1.2.3-rev1 +
Standard Template Library - Index +

+

eXtensible Lang.

+

+

SAXON XSLT and XQuery Processor +
The Expat XML Parser +
XML v1.0Rev3 W3C Standard +
XPath Expression Syntax +
XSL v1.1 W3C Standard +

+

Java // JSP // SQL

+

+

How to Use JTables +
JDK 5 Documentation +
JSP Syntax Reference +
Quick JSP Tutorial +
Xerces-J API DOM Parser +

+

Perl // Python // Ruby

+

+

Gtk2-perl ::main documentation +
Programming Ruby First Edition +
Rails Framework Documentation +
Ruby, Python, "Power" +
Ruby Class and Library Reference +
Ruby on Rails Wiki +
Why’s (Poignant) Guide to Ruby +

+

SQL // PHP

+

+

A Gentle Introduction to SQL +
MySQL Manual | RegExprs +
PHP: Hypertext Preprocessor +
SQLCODE Lookup Table +

+

.NET Dev: C# Class Library +
ColorMatch Remix +
Dynamic Drive- DHTML & JavaScript +
Hotscripts.com - All resources +
Flash Kit - Flash Developing +
The Code Project: VS/.NET Resource +

+

Useful Software

+

+

DScaler - TV & Video Deinterlacer +
Freshmeat.net: open-source soft +
MozillaExt: Adblock Plus +
SpeedswitchXP Dell Control +
The Mp3/Tag Studio Homepage +

+

Wallpapers & Art

+

+

Application Themes

+

+

Customize.org -- Download Skins +
KDE-Look.org +
Lila Theme homepage +
GNOME-Look.org +
GNOME artwork & themes +
Theme Depot - Source for all things themed +

+

Fonts & Icons

+

+

1001 Free Fonts +
Download fonts | dafont.com +
Everaldo.com Icons +
InterfaceLIFT: Newest Mac icons +
The Iconfactory: Freeware Icons Hub +

+

Photoshop Articles

+

+

B-man Artworks | Tutorials +
Effectlab Tutorials +
Good-Tutorials.com - 3568 Tutorials +
Spoono - Photoshop & Flash +

+

73lab: Purple tux - Ayo +
Florian Freundt | Wallpapers +
Klowner's Wallpapers +
netghost's Gallery // DeviantART +
Pixelgirl Presents Icons & Wallpapers +
Rasterbator Poster Processor +
stock.xchng - stock photography +
Tux Factory: CrystalXP +

+


+

Board & cardgames

+

+

Magic the Gathering

+

+

Magic Deck Vortex DB +
Magic the Gathering @ Wizards.com +
StarCityGames.com Five Colors, One Source +

+

999 Games +
AnderSpel overzicht +
BoardGameGeek - database articles +
Bordspel.com - spellen +
Brickshelf LEGO Instructions +
Funagain Games Store & Reviews ENG +
LEGO BrickFactory Scans +
Spellengek Recente Recensies +
Spellenstapel menu +
The Hypertext v3.5 d20 System Ref. +
Vlaams spellenarchief - Vertalingen +

+

Bored: Funny Stuff

+

+

Web Comics

+

+

All Comics Browser +
Comic Strips by wulffmorgenthaler. +
Ctrl+Alt+Del Comics +
Dueling Analogs +
JOHN AND JOHN a sick comic by d!o +
Lectrrland Cartoons +
Nuklear Power Comic +
VG Cats - Updated Mondays +

+

allfg.org: Free TV Episodes Online +
AtomFilms: Best short films & animations +
BowMaster Flash Game +
Lolcats +
Every Video Game in Java/Flash +
Newgrounds Presents: Games +
Uitzending Gemist (NL) +

+


+

Actueel

+

+

Acronym Finder +
AltaVista - Babel Fish Translation +
Currency Calculator +
Dictionary.com Reference +
Infobel Telefoonboek +
Openingsuren.com +
ViaMichelin Route Planner Europe +

+

Multimedia

+

+

Hip-Hop

+

+

AllHipHop.com hecks, Thugs & Rock-N-Roll +
HipHopSite.Com - New Releases +
NoboySmiling.com: Hip-Hop Street Knowledge +
Underground Hip Hop dot com +

+

AllMusic search engine +
CDUniverse samples +
Divxstation - Download Subtitles +
Doom9.net - DVD Backup Resource +
Musicplasma : visual search engine +
The Internet Movie Database (IMDb) +
+
cd covers search engine megasearch +
cdcovers.cc (PC & DVD only) +

+

Aankoop & Verkoop

+

+

Kaart- en bordspellen

+

+

Adriaensen Gezelschapsspellen BE +
Luk Delombaerde spellen BE +
WinGames particulieren - BE +
Allgames4you DE (best) +
CCG-shop.nl - sneller, beter & goedkoper NL +
Coolmove.nl - Bordspellen NL +

+

Amazon books etc ENG +
BOL | Home | Welkom +
Cheap Ass Gamer! +
Play-Asia Import shop +
Startup Software Online (UK) +
Video Games Plus Canada +
+
[vv] Computer DE +
ALTERNATE. Hardware DE +
Tones.be :: computer shop +

+


+

+

\ No newline at end of file diff --git a/static/post/2022/01/darkmode.gif b/static/post/2022/01/darkmode.gif new file mode 100644 index 00000000..1d327747 Binary files /dev/null and b/static/post/2022/01/darkmode.gif differ diff --git a/themes/brainbaking-minimal/layouts/_default/rss.xml b/themes/brainbaking-minimal/layouts/_default/rss.xml index 594119c3..5b9a035e 100644 --- a/themes/brainbaking-minimal/layouts/_default/rss.xml +++ b/themes/brainbaking-minimal/layouts/_default/rss.xml @@ -18,7 +18,7 @@ {{ if eq .Title .Site.Title }}{{ .Site.Title }}{{ else }}{{ with .Title }}{{.}} on {{ end }}{{ .Site.Title }}{{ end }} {{ .Permalink }} - {{ .Site.Title }} | {{ .Site.Params.description }} by {{ .Site.Author.name }} + {{ .Site.Params.description }} by {{ .Site.Author.name }} Hugo -- gohugo.io{{ with .Site.LanguageCode }} {{.}}{{end}} {{ with $.Site.Author.name }}{{.}}{{end}} diff --git a/themes/brainbaking-minimal/layouts/partials/icons.html b/themes/brainbaking-minimal/layouts/partials/icons.html index 59e6eec7..e5eb5601 100644 --- a/themes/brainbaking-minimal/layouts/partials/icons.html +++ b/themes/brainbaking-minimal/layouts/partials/icons.html @@ -54,4 +54,8 @@ + + + +