Commit 8503ce8867

8503ce886741af7bb40c1fbdb58ec6bc0b906a3c

parent: ab1d0a88a5

Unsigned

cmc <hello@cleberg.net> · 2025-11-15 00:52 UTC

fix alt-text for all remaining posts

Layout: unified · split

content/blog/2020-12-29-zork.org +2 −1
@@ -32,6 +32,7 @@ as it was truly intended, you should try to play it without using the
3232map.
3333
3434#+caption: Zork Map
35#+attr_html: :alt A map for Zork, showing passageways, restrictions, and all locations.
3536[[https://img.cleberg.net/blog/20201229-zork/zork_map.jpg]]
3637
3738/[[https://www.filfre.net/2012/01/exploring-zork-part-1/][Map Source]]/
@@ -42,7 +43,7 @@ After playing the game (for the first time ever) for several weeks around 2014,
4243I was finally able to beat the game with some online help to find the last
4344couple items. As I was writing this post, I installed the game again to grab
4445some screenshots to show off the true glory of this game. As noted in [[https://www.filfre.net/2012/01/exploring-zork-part-1/][Jimmy
45Maher's playthrough]], the original Zork games looked quite a bit different due to
46Maher's Playthrough]], the original Zork games looked quite a bit different due to
4647the older hardware of computers like the Apple II and multiple bug fixes that
4748Infocom pushed out after the game's initial release. My play-through uses the
4849[[https://store.steampowered.com/app/570580/Zork_Anthology/][Zork Anthology]] version, which utilizes DOSBox on Windows.
content/blog/2021-03-28-vaporwave-vs-outrun.org +8 −2
@@ -15,11 +15,13 @@ image search results for Vaporwave: the results include *a lot* of Outrun-themed
1515images. You'll find a similar trend almost everywhere.
1616
1717#+caption: Vaporwave Search Results
18#+attr_html: :alt Search engine results for vaporwave, showing many outrun-related images.
1819[[https://img.cleberg.net/blog/20210328-vaporwave-vs-outrun/vaporwave-search-results.webp]]
1920
2021* Vaporwave
2122
2223#+caption: Macintosh Plus Album Cover
24#+attr_html: :alt Album cover of the Macintosh Plus album.
2325[[https://img.cleberg.net/blog/20210328-vaporwave-vs-outrun/macintosh-plus.webp]]
2426
2527Okay, so what is Vaporwave? I'm going to just copy-and-paste some general info
@@ -72,7 +74,8 @@ aesthetically-pleasing parts of that past is a large part of Vaporwave.
7274* Outrun
7375
7476#+caption: Outrun
75[[https://img.cleberg.net/blog/20210328-vaporwave-vs-outrun/outrun.webp]]
77#+attr_html: :alt The classic outrun picture with digital hills and a grid leading to a far-away sunset.
78[[https://img.cleberg.net/blog/20210328-vaporwave-vs-outrun/outrun.jpg]]
7679
7780Now, let's get to Outrun. This one is a little trickier since the genre has
7881largely been lumped under the Vaporwave title for so long. However, it stems
@@ -103,15 +106,18 @@ like. Take a look at a common video game discussed in Outrun circles, Far Cry 3:
103106Blood Dragon:
104107
105108#+caption: Fry Cry 3: Blood Dragon
106[[https://img.cleberg.net/blog/20210328-vaporwave-vs-outrun/far-cry.webp]]
109#+attr_html: :alt The game cover for Far Cary 3: Blood Dragon, showing ninjas, lasers, dinosaurs, and cyborgs.
110[[https://img.cleberg.net/blog/20210328-vaporwave-vs-outrun/far-cry.jpg]]
107111
108112Another example that doesn't force the color scheme as hard as some online art
109113does is Kung Fury:
110114
111115#+caption: Kung Fury
116#+attr_html: :alt The movie cover for Kung Fury, showing the proteagonist in a city at night with a moon.
112117[[https://img.cleberg.net/blog/20210328-vaporwave-vs-outrun/kung-fury.webp]]
113118
114119#+caption: Kung Fury Hacker Scene
120#+attr_html: :alt The HACKERMAN scene from Kung Fury, showing a classic 1980's hacker in a computer room.
115121[[https://img.cleberg.net/blog/20210328-vaporwave-vs-outrun/kung-fury-hacker.webp]]
116122
117123* Conclusion
content/blog/2022-03-02-reliable-notes.org +3
@@ -37,6 +37,7 @@ For example, here's how TextEdit on macOS will open and display a Markdown file
3737in plain-text, since it does contain any features to preview Markdown as HTML:
3838
3939#+caption: Plain Text Markdown
40#+attr_html: :alt A view of the README.md from the cleberg.net repository.
4041[[https://img.cleberg.net/blog/20220302-easy-reliable-note-taking/plain_markdown.webp]]
4142
4243** Saving & Syncing Files
@@ -100,12 +101,14 @@ incredibly easy and straightforward.
100101Here's an example of how my Markdown notes look when opened in plain-text mode:
101102
102103#+caption: Obsidian Markdown Source Mode
104#+attr_html: :alt Markdown source mode, showing the symbols used by markdown to markup text.
103105[[https://img.cleberg.net/blog/20220302-easy-reliable-note-taking/obsidian_source_mode.webp]]
104106
105107Here's the "live preview" version, where the Markdown is rendered into its HTML
106108format:
107109
108110#+caption: Obsidian Markdown Live Preview
111#+attr_html: :alt Markdown preview mode, hiding all symbols used in Markdown syntax.
109112[[https://img.cleberg.net/blog/20220302-easy-reliable-note-taking/obsidian_live_preview.webp]]
110113
111114*** Programming on Desktop
content/blog/2022-10-04-syncthing.org +1
@@ -87,6 +87,7 @@ connected devices.
8787Here's an example web GUI dashboard:
8888
8989#+caption: Syncthing Dashboard
90#+attr_html: :alt Syncthing web page on macOS, showing folders, device info, and remote devices.
9091[[https://img.cleberg.net/blog/20221020-syncthing/syncthing_gui.webp]]
9192
9293** Remote Devices
content/blog/2023-01-05-mass-unlike-tumblr-posts.org +5 −3
@@ -55,7 +55,8 @@ Once you are logged in and the page is loaded, open the Developer Tools
5555and be sure you're on the "Console" tab. It should look something like
5656this (this is in Firefox, Chromium should be similar):
5757
58#+caption: Firefox Dev !Tools
58#+caption: Firefox Dev Tools
59#+attr_html: :alt Firefox Dev Tools' Console tab will allow you to paste this command.
5960[[https:///img.cleberg.net/blog/20230105-mass-unlike-tumblr-posts/dev_console.webp]]
6061
6162All you need to do is paste the following snippet into the dev console.
@@ -87,8 +88,9 @@ You can see the below screenshot showing that I pasted the snippet into
8788the console, pressed Enter, and then the posts are automatically
8889unliked.
8990
90#+caption: Script !Results
91[[https:///img.cleberg.net/blog/20230105-mass-unlike-tumblr-posts/script_results.webp]]
91#+caption: Script Results
92#+attr_html: :alt The script will return "undefined" when run in the console.
93[[https://img.cleberg.net/blog/20230105-mass-unlike-tumblr-posts/script_results.webp]]
9294
9395Thinking about this further, I would bet that this would be fairly
9496simple to package into a browser add-on so that users could install the
content/blog/2023-06-23-byobu.org +1
@@ -19,6 +19,7 @@ Take a look below at my current multi-window set-up in byobu while I
1919write this blog post:
2020
2121#+caption: byobu
22#+attr_html: :alt The Byobu multiplexer with both nano and eww opened.
2223[[https://img.cleberg.net/blog/20230623-byobu/byobu.webp]]
2324
2425*** Keybindings
content/blog/2023-06-23-self-hosting-convos.org +2
@@ -130,9 +130,11 @@ There are numerous themes to choose from; the theme shown in the images
130130below is Dracula.
131131
132132#+caption: Convos Home
133#+attr_html: :alt The Convos login page, requiring an email and password.
133134[[https://img.cleberg.net/blog/20230623-convos/convos_home.webp]]
134135
135136#+caption: Convos Chat
137#+attr_html: :alt An example of the #org-mode channel on Libera.Chat.
136138[[https://img.cleberg.net/blog/20230623-convos/convos_chat.webp]]
137139
138140* Registering a Nickname
content/blog/2023-10-11-self-hosting-authelia.org +2
@@ -441,6 +441,7 @@ When visiting the protected domain, you will now be redirected to your
441441authentication domain and presented with the Authelia login portal.
442442
443443#+caption: Authelia Portal
444#+attr_html: :alt A view of the Authelia login page, requiring a username and password.
444445[[https://img.cleberg.net/blog/20231010-authelia/authelia_portal.webp]]
445446
446447Once you've successfully authenticated, you can visit your
@@ -448,4 +449,5 @@ authentication domain directly and see that you're currently
448449authenticated to any domain protected by Authelia.
449450
450451#+caption: Authelia Success
452#+attr_html: :alt A view of the success page when succesfully authenticated.
451453[[https://img.cleberg.net/blog/20231010-authelia/authelia_success.webp]]
content/blog/2024-01-27-tableau-dashboard.org +2
@@ -11,6 +11,7 @@ them to create the dashboard below. You can view this dashboard interactively
1111online here: [[https://public.tableau.com/app/profile/c.c7042/viz/OmahaCrimeData2015-2023/OmahaCrimeData2015-2023#1][Omaha Crime Data (2015 - 2023)]].
1212
1313#+caption: Tableau Dashboard
14#+attr_html: :alt A Tableau dashboard showing a map of Omaha with a dot for each crime, a bar chart with totals per crime category, and a line chart showing a timeline of crime totals by month.
1415[[https://img.cleberg.net/blog/20240127-tableau-dashboard/dashboard.webp]]
1516
1617* Gather the Data
@@ -140,4 +141,5 @@ There's a ton of other options available to be used in a dashboard like this,
140141but this project shows a quick preview of what you can do in Tableau Public.
141142
142143#+caption: Tableau Dashboard
144#+attr_html: :alt A Tableau dashboard showing a map of Omaha with a dot for each crime, a bar chart with totals per crime category, and a line chart showing a timeline of crime totals by month.
143145[[https://img.cleberg.net/blog/20240127-tableau-dashboard/dashboard.webp]]
content/blog/2024-03-13-doom-emacs.org +4
@@ -12,9 +12,11 @@ and the help pane open at the bottomm.
1212The themes are =doom-homage-white= and =doom-homage-black=.
1313
1414#+caption: Doom Emacs Light Mode
15#+attr_html: :alt An example of the doom-homage-white theme on the Doom dashboard.
1516[[https://img.cleberg.net/blog/20240314-doom-emacs/light.webp]]
1617
1718#+caption: Doom Emacs Dark Mode
19#+attr_html: :alt An example of the doom-homage-black theme on the Doom dashboard.
1820[[https://img.cleberg.net/blog/20240314-doom-emacs/dark.webp]]
1921
2022** Getting Started
@@ -183,6 +185,7 @@ been slowly adoping some Python and general web dev tools as well.
183185*** Markdown
184186
185187#+caption: Markdown Preview
188#+attr_html: :alt An editing buffer opened to a markdown file.
186189[[https://img.cleberg.net/blog/20240314-doom-emacs/markdown.webp]]
187190
188191Markdown is fairly simple as the syntax is limited, so just make sure the
@@ -205,6 +208,7 @@ things like link hiding.
205208*** Org-Mode
206209
207210#+caption: Org-Mode Preview
211#+attr_html: :alt An editing buffer opened to an org-mode file.
208212[[https://img.cleberg.net/blog/20240314-doom-emacs/org.webp]]
209213
210214Similar to the markdown section above, ensure that the =~/.doom.d/init.el=
content/blog/2024-03-15-self-hosting-ddns-updater.org +1
@@ -4,6 +4,7 @@
44#+slug: self-hosting-ddns-updater
55
66#+caption: DDNS Updater Web View
7#+attr_html: :alt An example of the DDNS Updater app running and showing that cleberg.net's IP has been updated on Cloudflare.
78[[https://img.cleberg.net/blog/20240315-ddns-updater/ddns.webp]]
89
910[[https://github.com/qdm12/ddns-updater][DDNS Updater]] is a program to keep DNS A and/or AAAA records updated for multiple
content/blog/2024-04-08-docker-local-web-server.org +4
@@ -33,6 +33,7 @@ Open the installer and follow the installation process until the application
3333finishes the installation process.
3434
3535#+caption: Docker Desktop on macOS
36#+attr_html: :alt The Containers home page of the Docker Desktop app on macOS.
3637[[https://img.cleberg.net/blog/20240408-docker-local-web-server/docker-desktop.webp]]
3738
3839** Creating an Nginx Container
@@ -56,6 +57,7 @@ docker run -it --rm -d -p 8000:80 --name web nginx
5657You can navigate to [[http://localhost:8000]] to see the resulting page.
5758
5859#+caption: Default Nginx Container
60#+attr_html: :alt The generic "Welcome to nginx!" page viewable at localhost:8000.
5961[[https://img.cleberg.net/blog/20240408-docker-local-web-server/default-container.webp]]
6062
6163** Customizing the Nginx Container
@@ -102,6 +104,8 @@ server {
102104}
103105#+end_src
104106
107#+caption: Deploying My Website via Docker
108#+attr_html: :alt A view of cleberg.net on the localhost, as the docker container is pointing to the cleberg.net repository directory.
105109[[https://img.cleberg.net/blog/20240408-docker-local-web-server/custom-container.webp]]
106110
107111* Customizing Deployment Actions
content/blog/2024-04-18-mu4e.org +1
@@ -300,4 +300,5 @@ The home page shows various options and metadata about the account you've
300300opened.
301301
302302#+caption: Mu4e Home Page
303#+attr_html: :alt The mu4e homepage within iTerm2, showing the basics, bookmarks, maildirs, and misc sections.
303304[[https://img.cleberg.net/blog/20240418-mu4e/mu4e.webp]]
content/blog/2024-05-03-ubuntu-on-macos.org +5
@@ -32,6 +32,7 @@ Once installed, you can launch OrbStack and create a Linux machine in a matter
3232of seconds. The creation dialog defaults to Ubuntu.
3333
3434#+caption: OrbStack's Linux Machine Creation Page
35#+attr_html: :alt A popup within OrbStack to create a new machine with a custom name, distribution, version, and CPU type.
3536[[https://img.cleberg.net/blog/20240503-ubuntu-on-macos/create.webp]]
3637
3738** Launching the Machine
@@ -62,6 +63,7 @@ In the example below, we can see that the machine is using =Linux ubuntu 6.9.6=
6263and operates similar to a fresh Ubuntu install on bare metal.
6364
6465#+caption: Ubuntu CLI
66#+attr_html: :alt An example of the Ubuntu CLI, running the "uname -a" command.
6567[[https://img.cleberg.net/blog/20240503-ubuntu-on-macos/cli.webp]]
6668
6769You can also click the machine's folder icon in OrbStack to open the machine's
@@ -70,12 +72,14 @@ to open any files and they will open in the macOS defaults for those file types
7072(e.g., TextEdit).
7173
7274#+caption: Ubuntu Files
75#+attr_html: :alt The Ubuntu machine's files available within the macOS Files app.
7376[[https://img.cleberg.net/blog/20240503-ubuntu-on-macos/files.webp]]
7477
7578Here's an example of opening the =test.md= file in the screenshot above, which
7679defaults to opening in Xcode on my system.
7780
7881#+caption: Ubuntu Files
82#+attr_html: :alt An example of editing the test.md file in Xcode.
7983[[https://img.cleberg.net/blog/20240503-ubuntu-on-macos/xcode.webp]]
8084
8185*** Test Examples
@@ -84,6 +88,7 @@ As a quick example of the system, I installed =neofetch=, switched to the =zsh=
8488shell, and ran a few common commands.
8589
8690#+caption: Test Examples
91#+attr_html: :alt An example of the date, pwd, and neofetch commands.
8792[[https://img.cleberg.net/blog/20240503-ubuntu-on-macos/test.webp]]
8893
8994** Thoughts
content/blog/2024-07-11-emacs-on-ipad.org +5 −4
@@ -13,6 +13,7 @@ I recommend [[https://apps.apple.com/us/app/ish-shell/id1436902243][iSH]], since
1313and will allow you to install packages that you need.
1414
1515#+caption: iSH Application
16#+attr_html: :alt The iSH shell on iPad.
1617[[https://img.cleberg.net/blog/20240711-emacs-on-ipad/ish.webp]]
1718
1819** Require Packages
@@ -25,7 +26,8 @@ in my terminal as well.
2526apk add emacs ripgrep fd findutils
2627#+end_src
2728
28#+caption: Package !Installation
29#+caption: Package Installation
30#+attr_html: :alt Showing command "apk add emacs ripgrep rf findutils" within iSH.
2931[[https://img.cleberg.net/blog/20240711-emacs-on-ipad/dependencies.webp]]
3032
3133** Emacs
@@ -37,9 +39,6 @@ I attempted to also install Doom Emacs, which technically worked, but was so
3739incredibly slow and buggy that I was not even able to take screenshots. Someone
3840smarter than me could likely get it to work with a little tinkering.
3941
40#+caption: Emacs
41[[https://img.cleberg.net/blog/20240711-emacs-on-ipad/emacs.webp]]
42
4342*** MELPA
4443
4544You also have to remember to hook up MELPA yourself in the =.emacs= file to be
@@ -47,12 +46,14 @@ able to search through their 5700+ packages instead of just ELPA packages. If
4746you don't, you will only have access to ELPA packages like the ones below.
4847
4948#+caption: package-install
49#+attr_html: :alt A full list of all packages available when searching MELPA.
5050[[https://img.cleberg.net/blog/20240711-emacs-on-ipad/melpa.webp]]
5151
5252Once you have MELPA, you can install packages like the =dashboard= package shown
5353below.
5454
5555#+caption: emacs-dashboard
56#+attr_html: :alt An example of the emacs-dashboard package.
5657[[https://img.cleberg.net/blog/20240711-emacs-on-ipad/dashboard.webp]]
5758
5859*** Speed
content/blog/2024-08-25-n8n-sentiment-analysis.org +3
@@ -112,6 +112,7 @@ You can open the included workflow at
112112and create a new configuration.
113113
114114#+caption: n8n Workflow
115#+attr_html: :alt A canvas view of the worklow, showing an email trigger, if statement, sentiment analysis via Ollama, and send email action.
115116[[https://img.cleberg.net/blog/20240825-n8n-sentiment-analysis/workflow.webp]]
116117
117118This workflow contains the following nodes:
@@ -150,9 +151,11 @@ send yourself a test email!
150151After testing each step noted above, n8n provided the results below - it works!
151152
152153#+caption: Positive Results
154#+attr_html: :alt An example showing that n8n marked an email as "Positive".
153155[[https://img.cleberg.net/blog/20240825-n8n-sentiment-analysis/positive_results.webp]]
154156
155157#+caption: Negative Results
158#+attr_html: :alt An example showing that n8n marked an email as "Negative".
156159[[https://img.cleberg.net/blog/20240825-n8n-sentiment-analysis/negative_results.webp]]
157160
158161While this isn't anything earth-shattering, it does show easy it is to get
content/blog/2024-09-20-prometheus-grafana-cloud.org +9
@@ -276,6 +276,7 @@ and determine what Grafana should do when an alert is triggered.
276276** OnCall
277277
278278#+caption: OnCall
279#+attr_html: :alt View of the Grafana OnCall dashboard with metrics.
279280[[https://img.cleberg.net/blog/20240920-prometheus-grafana-cloud/oncall.webp]]
280281
281282Within the Alerts & IRM section of Grafana (=/alerts-and-incidents=), open the
@@ -298,11 +299,13 @@ users and teams to be on call for specific date and time ranges. For my
298299purposes, I put myself on-call 24/7 so that I receive all alerts.
299300
300301#+caption: User Information
302#+attr_html: :alt View of the grafanafd88 user with notification preferences.
301303[[https://img.cleberg.net/blog/20240920-prometheus-grafana-cloud/irm_user_info.webp]]
302304
303305** Alerting
304306
305307#+caption: Alerting Insights
308#+attr_html: :alt A dashboard with the current grafana-managed alert rules.
306309[[https://img.cleberg.net/blog/20240920-prometheus-grafana-cloud/alerting_insights.webp]]
307310
308311Now that we have defined users and team associated with an on-call schedule and
@@ -322,12 +325,14 @@ evaluation group. This is connected to our Grafana email, but can be associated
322325with any notification policy.
323326
324327#+caption: New Alert Rule
328#+attr_html: :alt All available seetings when creating a new alert.
325329[[https://img.cleberg.net/blog/20240920-prometheus-grafana-cloud/new_alert.webp]]
326330
327331When the alert fires, it will generate an email (or whatever notification policy
328332you assigned) and will look something like the following image.
329333
330334#+caption: Alerting Example
335#+attr_html: :alt An email showing that "High CPU Temps" alert is firing.
331336[[https://img.cleberg.net/blog/20240920-prometheus-grafana-cloud/email_alert.webp]]
332337
333338** Dashboards
@@ -336,13 +341,17 @@ As promised above, here are some dashboard screenshots based on the
336341configurations above.
337342
338343#+caption: Nginx Dashboard
344#+attr_html: :alt Updated dashboard based on the new alert created above.
339345[[https://img.cleberg.net/blog/20240920-prometheus-grafana-cloud/dashboard_nginx.webp]]
340346
341347#+caption: Node Dashboard
348#+attr_html: :alt Metrics of server nodes, including CPU, network, and memory.
342349[[https://img.cleberg.net/blog/20240920-prometheus-grafana-cloud/dashboard_node.webp]]
343350
344351#+caption: OnCall Dashboard
352#+attr_html: :alt Full OnCall dashboard with metrics for alerts, mean time to respond, and more.
345353[[https://img.cleberg.net/blog/20240920-prometheus-grafana-cloud/dashboard_oncall.webp]]
346354
347355#+caption: Prometheus Dashboard
356#+attr_html: :alt Dashboard showing Prometheus metrics, including scrape duration, head shunks, reload count, and more.
348357[[https://img.cleberg.net/blog/20240920-prometheus-grafana-cloud/dashboard_prometheus.webp]]
content/blog/2024-10-31-continue-ollama-code-assistant.org +5
@@ -200,18 +200,23 @@ Continue:
200200Below are a few screenshots from my current VS Codium window:
201201
202202#+caption: Available Continue Commands
203#+attr_html: :alt List of commands available from the Continue package.
203204[[https://img.cleberg.net/blog/20241031-continue-ollama-code-assistant/continue_commands.webp]]
204205
205206#+caption: Continue Fullscreen Chat Window
207#+attr_html: :alt Continue chat window in full screen mode.
206208[[https://img.cleberg.net/blog/20241031-continue-ollama-code-assistant/continue_fullscreen.webp]]
207209
208210#+caption: Inline Hotkeys
211#+attr_html: :alt View of the Add to chat (Cmd+L) and Edit highlighted code (Cmd+I) options when typing inline.
209212[[https://img.cleberg.net/blog/20241031-continue-ollama-code-assistant/continue_inline_hotkeys.webp]]
210213
211214#+caption: Inline Editing Suggestions
215#+attr_html: :alt Highlighted red and green sections showing suggestions from the agent.
212216[[https://img.cleberg.net/blog/20241031-continue-ollama-code-assistant/continue_inline.webp]]
213217
214218#+caption: Sidebar Context Window
219#+attr_html: :alt View of the sidebar context window open side-by-side with an edited file.
215220[[https://img.cleberg.net/blog/20241031-continue-ollama-code-assistant/continue_sidebar.webp]]
216221
217222* Conclusion
content/blog/2024-12-27-self-hosting-the-lounge.org +4
@@ -59,6 +59,7 @@ browsing from a different device. Don't forget to allow the port through your
5959machine's firewall, if you have one enabled.
6060
6161#+caption: Login
62#+attr_html: :alt The Lounge login page with username and password fields.
6263[[https://img.cleberg.net/blog/20241229-thelounge/login.webp]]
6364
6465** Nginx Reverse Proxy
@@ -154,10 +155,13 @@ bottom of the sidebar and connect to individual channels or users via the plus
154155(=+=) button next to your server's name in the sidebar.
155156
156157#+caption: New Server Connection
158#+attr_html: :alt Settings for network, proxy, preferences, and authentication.
157159[[https://img.cleberg.net/blog/20241229-thelounge/new_connection.webp]]
158160
159161#+caption: Existing Server Connection
162#+attr_html: :alt Libera.Chat server connection log and status.
160163[[https://img.cleberg.net/blog/20241229-thelounge/existing_connection.webp]]
161164
162165#+caption: Channel View
166#+attr_html: :alt View of the #emacs channel on Libera.Chat.
163167[[https://img.cleberg.net/blog/20241229-thelounge/channel.webp]]
content/blog/2025-01-23-self-hosting-tandoor.org +7
@@ -124,22 +124,29 @@ The app is now available on your custom domain!
124124** Screenshots
125125
126126#+caption: Login
127#+attr_html: :alt Tandoor login page.
127128[[https://img.cleberg.net/blog/20250123-self-hosting-tandoor/login.webp]]
128129
129130#+caption: Recipes
131#+attr_html: :alt Tandoor options to search for recipes.
130132[[https://img.cleberg.net/blog/20250123-self-hosting-tandoor/recipes.webp]]
131133
132134#+caption: Meal Plan
135#+attr_html: :alt Calendar view to define meal plans.
133136[[https://img.cleberg.net/blog/20250123-self-hosting-tandoor/mealplan.webp]]
134137
135138#+caption: Shopping Lists
139#+attr_html: :alt Page to create or search for shopping lists.
136140[[https://img.cleberg.net/blog/20250123-self-hosting-tandoor/shopping.webp]]
137141
138142#+caption: Cook Book
143#+attr_html: :alt Page to create a visual-style cookbook.
139144[[https://img.cleberg.net/blog/20250123-self-hosting-tandoor/cookbook.webp]]
140145
141146#+caption: Import
147#+attr_html: :alt Options to import recipes from other pages and auto-populate images, keywords, steps, and a description.
142148[[https://img.cleberg.net/blog/20250123-self-hosting-tandoor/import.webp]]
143149
144150#+caption: Administration Panel
151#+attr_html: :alt Django administration options for the web app.
145152[[https://img.cleberg.net/blog/20250123-self-hosting-tandoor/admin.webp]]
content/blog/2025-02-11-obscura-vpn.org +8 −4
@@ -54,8 +54,9 @@ far as I can tell, there is no free tier available. In my opinion, this is a
5454good thing as I hesitate to understand how privacy-focused apps make money when
5555they offer free services to users.
5656
57[[https://img.cleberg.net/blog/20250211-obscura-vpn/payment.webp]]
5857#+caption: Payment
58#+attr_html: :alt Options to fund your Obscura account with credit card or lightning.
59[[https://img.cleberg.net/blog/20250211-obscura-vpn/payment.webp]]
5960
6061** Connection
6162
@@ -63,11 +64,13 @@ Once you've enrolled in either a subscription or one-time payment, Obscura will
6364return you to the app and allow you to connect. You can choose a specific server
6465location or automatically connect.
6566
66[[https://img.cleberg.net/blog/20250211-obscura-vpn/connect.webp]]
6767#+caption: Initial Connection
68#+attr_html: :alt Obscura macOS app on the Connection screen.
69[[https://img.cleberg.net/blog/20250211-obscura-vpn/connect.webp]]
6870
69[[https://img.cleberg.net/blog/20250211-obscura-vpn/toolbar.webp]]
7071#+caption: Toolbar Utility
72#+attr_html: :alt The Obscura VPN menu bar app on macOS shows connection status, bandwidth status, and options to debug or quit.
73[[https://img.cleberg.net/blog/20250211-obscura-vpn/toolbar.webp]]
7174
7275** Speed
7376
@@ -90,8 +93,9 @@ nodes before connecting to your target.
9093From the image below, we can see that Mullvad confirmed my traffic to be
9194connected through a Mullvad IP address.
9295
93[[https://img.cleberg.net/blog/20250211-obscura-vpn/mullvad-check.webp]]
9496#+caption: Mullvad Check
97#+attr_html: :alt The Mullvad connection check web page shows all "green" when on Obscura.
98[[https://img.cleberg.net/blog/20250211-obscura-vpn/mullvad-check.webp]]
9599
96100* Final Thoughts
97101
content/blog/2025-05-02-asahi-linux.org +6
@@ -17,6 +17,7 @@ are now supported. This is a great jump from the state it was at in 2022 - 2023
1717when I last checked.
1818
1919#+caption: Asahi Linux Device Support
20#+attr_html: :alt Device support for Asahi Linux.
2021[[https://img.cleberg.net/blog/20250502-asahi-linux/device_support.webp]]
2122
2223** Installation
@@ -60,12 +61,14 @@ see I started using the WhiteSur theme as it provides a more comfortable layout
6061for macOS users.
6162
6263#+caption: KDE
64#+attr_html: :alt A screenshot of a terminal running fastfetch and emacs on Asahi Linux.
6365[[https://img.cleberg.net/blog/20250502-asahi-linux/kde.webp]]
6466
6567When diving into the system information panel, we can see that this machine is
6668running Fedora Linux Asahi Remix 42 on an Apple M2 Pro laptop with 16GB of RAM.
6769
6870#+caption: System Information
71#+attr_html: :alt System information shows Fedora Linux Asahi Remix 42 with KDE 6.3.4.
6972[[https://img.cleberg.net/blog/20250502-asahi-linux/sysinfo.webp]]
7073
7174As I noted above, the first thing I did after installing Asahi and taking a few
@@ -77,6 +80,7 @@ color palette, as well as the Nothing theme that uses a dark black and red color
7780palette.
7881
7982#+caption: Themes
83#+attr_html: :alt Themes available by default on Asahi.
8084[[https://img.cleberg.net/blog/20250502-asahi-linux/themes.webp]]
8185
8286One of the things I use my laptop for the most is consuming media (music,
@@ -92,6 +96,7 @@ capabilities like pausing media when you remove an AirPod from your ear. The
9296lack of these advanced features doesn't bother me, but some people may be.
9397
9498#+caption: Bluetooth
99#+attr_html: :alt Bluetooth settings showing AirPods Pro support.
95100[[https://img.cleberg.net/blog/20250502-asahi-linux/bluetooth.webp]]
96101
97102Next, I was able to connect my PS5 controller via USB-C and Asahi picked up the
@@ -99,6 +104,7 @@ connect instantly in the settings menu. You can move the sticks and press all of
99104the buttons to see if they're recognized within this settings menu.
100105
101106#+caption: Game Pad Settings
107#+attr_html: :alt Gamepad settings showing PS5 input and button configurations.
102108[[https://img.cleberg.net/blog/20250502-asahi-linux/gamepad_settings.webp]]
103109
104110I had a bit of an issue launching Steam the first time, as I was getting an AVC
content/blog/2025-09-04-website-redesign.org +7 −3
@@ -9,9 +9,13 @@ content below describes the beginning of this journey and where I think it may
99take me next./
1010#+end_quote
1111
12| Old Theme | New Theme |
13|-----------------------------------------------------------------------+----------------------------------------------------------------------|
14| https://img.cleberg.net/blog/20250905-human-website-design/before.webp | https://img.cleberg.net/blog/20250905-human-website-design/after.webp |
12#+caption: The Old Theme
13#+attr_html: :alt A screenshot of the old theme for cleberg.net.
14https://img.cleberg.net/blog/20250905-human-website-design/before.webp
15
16#+caption: The New Theme
17#+attr_html: :alt A screenshot of the new theme for cleberg.net.
18https://img.cleberg.net/blog/20250905-human-website-design/after.webp
1519
1620* Inspiration
1721
content/blog/2025-09-25-minimalist-website-redesign.org +7 −3
@@ -13,9 +13,13 @@ terminal-styled theme to a more natural paper-inspired theme. However, it left a
1313nagging feeling that something was missing. What if I took it further? Was there
1414really any reason that I had any of that CSS at all?
1515
16| Old Theme | New Theme |
17|-----------------------------------------------------------------------+---------------------------------------------------------------------|
18| https://img.cleberg.net/blog/20250905-human-website-design/after.webp | https://img.cleberg.net/blog/20250925-minimalist-website-redesign/minimal.webp |
16#+caption: Old Theme
17#+attr_html: :alt A screenshot of the old theme for cleberg.net.
18https://img.cleberg.net/blog/20250905-human-website-design/after.webp
19
20#+caption: New Theme
21#+attr_html: :alt A screenshot of the new theme for cleberg.net.
22https://img.cleberg.net/blog/20250925-minimalist-website-redesign/minimal.webp
1923
2024* Inspiration
2125
content/blog/2025-10-06-rocket-league-macos.org +6
@@ -4,6 +4,7 @@
44#+slug: rocket-league-macos
55
66#+caption: Rocket League on macOS
7#+attr_html: :alt The Rocket League launch screen on macOS.
78[[https://img.cleberg.net/blog/20251006-rocket-league-macos/launch.webp]]
89
910* Intro
@@ -35,15 +36,18 @@ When the installer finishes, you’ll see a bottle (a sandboxed Windows
3536environment) like the one below:
3637
3738#+caption: Epic Games Store Bottle
39#+attr_html: :alt The Epic Games Store bottle within CrossOver.
3840[[https://img.cleberg.net/blog/20251006-rocket-league-macos/bottle.webp]]
3941
4042You can now launch the Epic application. Epic will update itself and then
4143present the login screen:
4244
4345#+caption: Epic Updater
46#+attr_html: :alt The progress bar for updating the Epic Games Store bottle.
4447[[https://img.cleberg.net/blog/20251006-rocket-league-macos/updater.webp]]
4548
4649#+caption: Epic Login
50#+attr_html: :alt The Epic Login page.
4751[[https://img.cleberg.net/blog/20251006-rocket-league-macos/login.webp]]
4852
4953* Install Rocket League
@@ -61,9 +65,11 @@ Take a look at the screenshots I was able to capture while playing on my M2
6165MacBook Pro with a PS5 Dualsense Edge controller:
6266
6367#+caption: Main Menu
68#+attr_html: :alt The Rocket Leageu main menu.
6469[[https://img.cleberg.net/blog/20251006-rocket-league-macos/menu.webp]]
6570
6671#+caption: In-Game
72#+attr_html: :alt A screenshot of a replay within a Rocket League match.
6773[[https://img.cleberg.net/blog/20251006-rocket-league-macos/game.webp]]
6874
6975* Tips & Troubleshooting
content/blog/2025-10-24-digital-garden.org +2
@@ -12,9 +12,11 @@ The first is a website ([[https://avas.space][ava's space]]) and the second is a
1212notes, using [[https://www.orgroam.com/][org-roam]].
1313
1414#+caption: avas.space
15#+attr_html: :alt Ava's Space, a digital garden and website by Ava.
1516[[https://img.cleberg.net/blog/20251024-digital-garden/ava.webp]]
1617
1718#+caption: Org Roam
19#+attr_html: :alt A screenshot of an org-roam digital garden and collection of note files.
1820[[https://img.cleberg.net/blog/20251024-digital-garden/orgroam.webp]]
1921
2022A digital garden is a personal space, just for you. It could serve any number of