cmc/cleberg.net
My personal web garden & blog.
clone: git clone https://gitbay.org/cmc/cleberg.net.git
35533ac1040042826d4ad50ba3f4ceb0594c5a7e
unsigned
author: Christian Cleberg <hello@cleberg.net> · 2025-11-01T19:51:15Z
README.md | 2 +- content/blog/2021-03-28-vaporwave-vs-outrun.org | 12 ++++++------ content/blog/2022-02-22-tuesday.org | 2 +- content/blog/2022-03-02-reliable-notes.org | 6 +++--- content/blog/2022-10-04-syncthing.org | 2 +- content/blog/2023-01-05-mass-unlike-tumblr-posts.org | 4 ++-- content/blog/2023-06-23-byobu.org | 2 +- content/blog/2023-06-23-self-hosting-convos.org | 4 ++-- content/blog/2023-10-11-self-hosting-authelia.org | 4 ++-- content/blog/2024-01-27-tableau-dashboard.org | 4 ++-- content/blog/2024-03-13-doom-emacs.org | 8 ++++---- content/blog/2024-03-15-self-hosting-ddns-updater.org | 2 +- content/blog/2024-04-08-docker-local-web-server.org | 6 +++--- content/blog/2024-04-18-mu4e.org | 2 +- content/blog/2024-05-03-ubuntu-on-macos.org | 10 +++++----- content/blog/2024-07-11-emacs-on-ipad.org | 10 +++++----- content/blog/2024-08-25-n8n-sentiment-analysis.org | 6 +++--- content/blog/2024-09-20-prometheus-grafana-cloud.org | 18 +++++++++--------- .../blog/2024-10-31-continue-ollama-code-assistant.org | 10 +++++----- content/blog/2024-12-27-self-hosting-the-lounge.org | 8 ++++---- content/blog/2025-01-23-self-hosting-tandoor.org | 14 +++++++------- content/blog/2025-02-11-obscura-vpn.org | 8 ++++---- content/blog/2025-05-02-asahi-linux.org | 12 ++++++------ content/blog/2025-09-04-website-redesign.org | 2 +- .../blog/2025-09-25-minimalist-website-redesign.org | 2 +- content/blog/2025-10-06-rocket-league-macos.org | 12 ++++++------ content/blog/2025-10-24-digital-garden.org | 4 ++-- content/salary/index.org | 2 +- 28 files changed, 89 insertions(+), 89 deletions(-) @@ -35,7 +35,7 @@ included in the `./screenshots/` directory. | Light Mode | Dark Mode | | ---------------------------- | --------------------------- | -|  |  | +|  |  | ## Configuration @@ -16,12 +16,12 @@ Vaporwave: the results include *a lot* of Outrun-themed images. You'll find a similar trend almost everywhere. #+caption: Vaporwave Search Results -[[https://img.cleberg.net/blog/20210328-vaporwave-vs-outrun/vaporwave-search-results.png]] +[[https://img.cleberg.net/blog/20210328-vaporwave-vs-outrun/vaporwave-search-results.webp]] * Vaporwave #+caption: Macintosh Plus Album Cover -[[https://img.cleberg.net/blog/20210328-vaporwave-vs-outrun/macintosh-plus.png]] +[[https://img.cleberg.net/blog/20210328-vaporwave-vs-outrun/macintosh-plus.webp]] Okay, so what is Vaporwave? I'm going to just copy-and-paste some general info from the Wikipedia article on @@ -80,7 +80,7 @@ is a large part of Vaporwave. * Outrun #+caption: Outrun -[[https://img.cleberg.net/blog/20210328-vaporwave-vs-outrun/outrun.png]] +[[https://img.cleberg.net/blog/20210328-vaporwave-vs-outrun/outrun.webp]] Now, let's get to Outrun. This one is a little trickier since the genre has largely been lumped under the Vaporwave title for so long. However, @@ -115,16 +115,16 @@ would look like. Take a look at a common video game discussed in Outrun circles, Far Cry 3: Blood Dragon: #+caption: Fry Cry 3: Blood Dragon -[[https://img.cleberg.net/blog/20210328-vaporwave-vs-outrun/far-cry.png]] +[[https://img.cleberg.net/blog/20210328-vaporwave-vs-outrun/far-cry.webp]] Another example that doesn't force the color scheme as hard as some online art does is Kung Fury: #+caption: Kung Fury -[[https://img.cleberg.net/blog/20210328-vaporwave-vs-outrun/kung-fury.png]] +[[https://img.cleberg.net/blog/20210328-vaporwave-vs-outrun/kung-fury.webp]] #+caption: Kung Fury Hacker Scene -[[https://img.cleberg.net/blog/20210328-vaporwave-vs-outrun/kung-fury-hacker.png]] +[[https://img.cleberg.net/blog/20210328-vaporwave-vs-outrun/kung-fury-hacker.webp]] * Conclusion @@ -26,7 +26,7 @@ Let's look at everything that fell in place today: Slavonic word =въторъ=, meaning "the second." 5. Written in the classic monospaced, digital font (think of digital clocks from the 80s/90s), there is nice symmetry to the numbers - ([[https://img.cleberg.net/blog/20220222-tuesday/digital_font.png][view + ([[https://img.cleberg.net/blog/20220222-tuesday/digital_font.webp][view the image here]]!). 6. This one isn't naturally-occurring, but it seems people around the world are celebrating the day. For example, a group is putting @@ -44,7 +44,7 @@ Markdown file in plain-text, since it does contain any features to preview Markdown as HTML: #+caption: Plain Text Markdown -[[https://img.cleberg.net/blog/20220302-easy-reliable-note-taking/plain_markdown.png]] +[[https://img.cleberg.net/blog/20220302-easy-reliable-note-taking/plain_markdown.webp]] ** Saving & Syncing Files :PROPERTIES: @@ -118,13 +118,13 @@ Here's an example of how my Markdown notes look when opened in plain-text mode: #+caption: Obsidian Markdown Source Mode -[[https://img.cleberg.net/blog/20220302-easy-reliable-note-taking/obsidian_source_mode.png]] +[[https://img.cleberg.net/blog/20220302-easy-reliable-note-taking/obsidian_source_mode.webp]] Here's the "live preview" version, where the Markdown is rendered into its HTML format: #+caption: Obsidian Markdown Live Preview -[[https://img.cleberg.net/blog/20220302-easy-reliable-note-taking/obsidian_live_preview.png]] +[[https://img.cleberg.net/blog/20220302-easy-reliable-note-taking/obsidian_live_preview.webp]] *** Programming on Desktop :PROPERTIES: @@ -95,7 +95,7 @@ add/modify connected devices. Here's an example web GUI dashboard: #+caption: Syncthing Dashboard -[[https://img.cleberg.net/blog/20221020-syncthing/syncthing_gui.png]] +[[https://img.cleberg.net/blog/20221020-syncthing/syncthing_gui.webp]] ** Remote Devices @@ -56,7 +56,7 @@ and be sure you're on the "Console" tab. It should look something like this (this is in Firefox, Chromium should be similar): #+caption: Firefox Dev !Tools -[[https:///img.cleberg.net/blog/20230105-mass-unlike-tumblr-posts/dev_console.png]] +[[https:///img.cleberg.net/blog/20230105-mass-unlike-tumblr-posts/dev_console.webp]] All you need to do is paste the following snippet into the dev console. This code will collect all unlike buttons (=elements=) and then click @@ -88,7 +88,7 @@ the console, pressed Enter, and then the posts are automatically unliked. #+caption: Script !Results -[[https:///img.cleberg.net/blog/20230105-mass-unlike-tumblr-posts/script_results.png]] +[[https:///img.cleberg.net/blog/20230105-mass-unlike-tumblr-posts/script_results.webp]] Thinking about this further, I would bet that this would be fairly simple to package into a browser add-on so that users could install the @@ -19,7 +19,7 @@ Take a look below at my current multi-window set-up in byobu while I write this blog post: #+caption: byobu -[[https://img.cleberg.net/blog/20230623-byobu/byobu.png]] +[[https://img.cleberg.net/blog/20230623-byobu/byobu.webp]] *** Keybindings @@ -130,10 +130,10 @@ There are numerous themes to choose from; the theme shown in the images below is Dracula. #+caption: Convos Home -[[https://img.cleberg.net/blog/20230623-convos/convos_home.png]] +[[https://img.cleberg.net/blog/20230623-convos/convos_home.webp]] #+caption: Convos Chat -[[https://img.cleberg.net/blog/20230623-convos/convos_chat.png]] +[[https://img.cleberg.net/blog/20230623-convos/convos_chat.webp]] * Registering a Nickname @@ -441,11 +441,11 @@ When visiting the protected domain, you will now be redirected to your authentication domain and presented with the Authelia login portal. #+caption: Authelia Portal -[[https://img.cleberg.net/blog/20231010-authelia/authelia_portal.png]] +[[https://img.cleberg.net/blog/20231010-authelia/authelia_portal.webp]] Once you've successfully authenticated, you can visit your authentication domain directly and see that you're currently authenticated to any domain protected by Authelia. #+caption: Authelia Success -[[https://img.cleberg.net/blog/20231010-authelia/authelia_success.png]] +[[https://img.cleberg.net/blog/20231010-authelia/authelia_success.webp]] @@ -11,7 +11,7 @@ them to create the dashboard below. You can view this dashboard interactively online here: [[https://public.tableau.com/app/profile/c.c7042/viz/OmahaCrimeData2015-2023/OmahaCrimeData2015-2023#1][Omaha Crime Data (2015 - 2023)]]. #+caption: Tableau Dashboard -[[https://img.cleberg.net/blog/20240127-tableau-dashboard/dashboard.png]] +[[https://img.cleberg.net/blog/20240127-tableau-dashboard/dashboard.webp]] * Gather the Data @@ -140,4 +140,4 @@ There's a ton of other options available to be used in a dashboard like this, but this project shows a quick preview of what you can do in Tableau Public. #+caption: Tableau Dashboard -[[https://img.cleberg.net/blog/20240127-tableau-dashboard/dashboard.png]] +[[https://img.cleberg.net/blog/20240127-tableau-dashboard/dashboard.webp]] @@ -12,10 +12,10 @@ and the help pane open at the bottomm. The themes are =doom-homage-white= and =doom-homage-black=. #+caption: Doom Emacs Light Mode -[[https://img.cleberg.net/blog/20240314-doom-emacs/light.png]] +[[https://img.cleberg.net/blog/20240314-doom-emacs/light.webp]] #+caption: Doom Emacs Dark Mode -[[https://img.cleberg.net/blog/20240314-doom-emacs/dark.png]] +[[https://img.cleberg.net/blog/20240314-doom-emacs/dark.webp]] ** Getting Started @@ -183,7 +183,7 @@ been slowly adoping some Python and general web dev tools as well. *** Markdown #+caption: Markdown Preview -[[https://img.cleberg.net/blog/20240314-doom-emacs/markdown.png]] +[[https://img.cleberg.net/blog/20240314-doom-emacs/markdown.webp]] Markdown is fairly simple as the syntax is limited, so just make sure the =~/.doom.d/init.el= includes the =markdown= declaration in the =:lang= section. @@ -205,7 +205,7 @@ things like link hiding. *** Org-Mode #+caption: Org-Mode Preview -[[https://img.cleberg.net/blog/20240314-doom-emacs/org.png]] +[[https://img.cleberg.net/blog/20240314-doom-emacs/org.webp]] Similar to the markdown section above, ensure that the =~/.doom.d/init.el= includes the =org= declaration in the =:lang= section. @@ -4,7 +4,7 @@ #+slug: self-hosting-ddns-updater #+caption: DDNS Updater Web View -[[https://img.cleberg.net/blog/20240315-ddns-updater/ddns.png]] +[[https://img.cleberg.net/blog/20240315-ddns-updater/ddns.webp]] [[https://github.com/qdm12/ddns-updater][DDNS Updater]] is a program to keep DNS A and/or AAAA records updated for multiple DNS providers. @@ -33,7 +33,7 @@ Open the installer and follow the installation process until the application finishes the installation process. #+caption: Docker Desktop on macOS -[[https://img.cleberg.net/blog/20240408-docker-local-web-server/docker-desktop.png]] +[[https://img.cleberg.net/blog/20240408-docker-local-web-server/docker-desktop.webp]] ** Creating an Nginx Container @@ -56,7 +56,7 @@ docker run -it --rm -d -p 8000:80 --name web nginx You can navigate to [[http://localhost:8000]] to see the resulting page. #+caption: Default Nginx Container -[[https://img.cleberg.net/blog/20240408-docker-local-web-server/default-container.png]] +[[https://img.cleberg.net/blog/20240408-docker-local-web-server/default-container.webp]] ** Customizing the Nginx Container @@ -102,7 +102,7 @@ server { } #+end_src -[[https://img.cleberg.net/blog/20240408-docker-local-web-server/custom-container.png]] +[[https://img.cleberg.net/blog/20240408-docker-local-web-server/custom-container.webp]] * Customizing Deployment Actions @@ -300,4 +300,4 @@ The home page shows various options and metadata about the account you've opened. #+caption: Mu4e Home Page -[[https://img.cleberg.net/blog/20240418-mu4e/mu4e.png]] +[[https://img.cleberg.net/blog/20240418-mu4e/mu4e.webp]] @@ -32,7 +32,7 @@ Once installed, you can launch OrbStack and create a Linux machine in a matter of seconds. The creation dialog defaults to Ubuntu. #+caption: OrbStack's Linux Machine Creation Page -[[https://img.cleberg.net/blog/20240503-ubuntu-on-macos/create.png]] +[[https://img.cleberg.net/blog/20240503-ubuntu-on-macos/create.webp]] ** Launching the Machine @@ -62,7 +62,7 @@ In the example below, we can see that the machine is using =Linux ubuntu 6.9.6= and operates similar to a fresh Ubuntu install on bare metal. #+caption: Ubuntu CLI -[[https://img.cleberg.net/blog/20240503-ubuntu-on-macos/cli.png]] +[[https://img.cleberg.net/blog/20240503-ubuntu-on-macos/cli.webp]] You can also click the machine's folder icon in OrbStack to open the machine's file system within macOS's native Files app. Within Files, you can double-click @@ -70,13 +70,13 @@ to open any files and they will open in the macOS defaults for those file types (e.g., TextEdit). #+caption: Ubuntu Files -[[https://img.cleberg.net/blog/20240503-ubuntu-on-macos/files.png]] +[[https://img.cleberg.net/blog/20240503-ubuntu-on-macos/files.webp]] Here's an example of opening the =test.md= file in the screenshot above, which defaults to opening in Xcode on my system. #+caption: Ubuntu Files -[[https://img.cleberg.net/blog/20240503-ubuntu-on-macos/xcode.png]] +[[https://img.cleberg.net/blog/20240503-ubuntu-on-macos/xcode.webp]] *** Test Examples @@ -84,7 +84,7 @@ As a quick example of the system, I installed =neofetch=, switched to the =zsh= shell, and ran a few common commands. #+caption: Test Examples -[[https://img.cleberg.net/blog/20240503-ubuntu-on-macos/test.png]] +[[https://img.cleberg.net/blog/20240503-ubuntu-on-macos/test.webp]] ** Thoughts @@ -13,7 +13,7 @@ I recommend [[https://apps.apple.com/us/app/ish-shell/id1436902243][iSH]], since and will allow you to install packages that you need. #+caption: iSH Application -[[https://img.cleberg.net/blog/20240711-emacs-on-ipad/ish.png]] +[[https://img.cleberg.net/blog/20240711-emacs-on-ipad/ish.webp]] ** Require Packages @@ -26,7 +26,7 @@ apk add emacs ripgrep fd findutils #+end_src #+caption: Package !Installation -[[https://img.cleberg.net/blog/20240711-emacs-on-ipad/dependencies.png]] +[[https://img.cleberg.net/blog/20240711-emacs-on-ipad/dependencies.webp]] ** Emacs @@ -38,7 +38,7 @@ incredibly slow and buggy that I was not even able to take screenshots. Someone smarter than me could likely get it to work with a little tinkering. #+caption: Emacs -[[https://img.cleberg.net/blog/20240711-emacs-on-ipad/emacs.png]] +[[https://img.cleberg.net/blog/20240711-emacs-on-ipad/emacs.webp]] *** MELPA @@ -47,13 +47,13 @@ able to search through their 5700+ packages instead of just ELPA packages. If you don't, you will only have access to ELPA packages like the ones below. #+caption: package-install -[[https://img.cleberg.net/blog/20240711-emacs-on-ipad/melpa.png]] +[[https://img.cleberg.net/blog/20240711-emacs-on-ipad/melpa.webp]] Once you have MELPA, you can install packages like the =dashboard= package shown below. #+caption: emacs-dashboard -[[https://img.cleberg.net/blog/20240711-emacs-on-ipad/dashboard.png]] +[[https://img.cleberg.net/blog/20240711-emacs-on-ipad/dashboard.webp]] *** Speed @@ -112,7 +112,7 @@ You can open the included workflow at and create a new configuration. #+caption: n8n Workflow -[[https://img.cleberg.net/blog/20240825-n8n-sentiment-analysis/workflow.png]] +[[https://img.cleberg.net/blog/20240825-n8n-sentiment-analysis/workflow.webp]] This workflow contains the following nodes: 1. Email Trigger (IMAP) @@ -150,10 +150,10 @@ send yourself a test email! After testing each step noted above, n8n provided the results below - it works! #+caption: Positive Results -[[https://img.cleberg.net/blog/20240825-n8n-sentiment-analysis/positive_results.png]] +[[https://img.cleberg.net/blog/20240825-n8n-sentiment-analysis/positive_results.webp]] #+caption: Negative Results -[[https://img.cleberg.net/blog/20240825-n8n-sentiment-analysis/negative_results.png]] +[[https://img.cleberg.net/blog/20240825-n8n-sentiment-analysis/negative_results.webp]] While this isn't anything earth-shattering, it does show easy it is to get started with n8n and large language models in a self-hosted environment. @@ -276,7 +276,7 @@ and determine what Grafana should do when an alert is triggered. ** OnCall #+caption: OnCall -[[https://img.cleberg.net/blog/20240920-prometheus-grafana-cloud/oncall.png]] +[[https://img.cleberg.net/blog/20240920-prometheus-grafana-cloud/oncall.webp]] Within the Alerts & IRM section of Grafana (=/alerts-and-incidents=), open the Users page. @@ -298,12 +298,12 @@ users and teams to be on call for specific date and time ranges. For my purposes, I put myself on-call 24/7 so that I receive all alerts. #+caption: User Information -[[https://img.cleberg.net/blog/20240920-prometheus-grafana-cloud/irm_user_info.png]] +[[https://img.cleberg.net/blog/20240920-prometheus-grafana-cloud/irm_user_info.webp]] ** Alerting #+caption: Alerting Insights -[[https://img.cleberg.net/blog/20240920-prometheus-grafana-cloud/alerting_insights.png]] +[[https://img.cleberg.net/blog/20240920-prometheus-grafana-cloud/alerting_insights.webp]] Now that we have defined users and team associated with an on-call schedule and configured to receive the proper alerts, let's define a rule that will generate @@ -322,13 +322,13 @@ evaluation group. This is connected to our Grafana email, but can be associated with any notification policy. #+caption: New Alert Rule -[[https://img.cleberg.net/blog/20240920-prometheus-grafana-cloud/new_alert.png]] +[[https://img.cleberg.net/blog/20240920-prometheus-grafana-cloud/new_alert.webp]] When the alert fires, it will generate an email (or whatever notification policy you assigned) and will look something like the following image. #+caption: Alerting Example -[[https://img.cleberg.net/blog/20240920-prometheus-grafana-cloud/email_alert.png]] +[[https://img.cleberg.net/blog/20240920-prometheus-grafana-cloud/email_alert.webp]] ** Dashboards @@ -336,13 +336,13 @@ As promised above, here are some dashboard screenshots based on the configurations above. #+caption: Nginx Dashboard -[[https://img.cleberg.net/blog/20240920-prometheus-grafana-cloud/dashboard_nginx.png]] +[[https://img.cleberg.net/blog/20240920-prometheus-grafana-cloud/dashboard_nginx.webp]] #+caption: Node Dashboard -[[https://img.cleberg.net/blog/20240920-prometheus-grafana-cloud/dashboard_node.png]] +[[https://img.cleberg.net/blog/20240920-prometheus-grafana-cloud/dashboard_node.webp]] #+caption: OnCall Dashboard -[[https://img.cleberg.net/blog/20240920-prometheus-grafana-cloud/dashboard_oncall.png]] +[[https://img.cleberg.net/blog/20240920-prometheus-grafana-cloud/dashboard_oncall.webp]] #+caption: Prometheus Dashboard -[[https://img.cleberg.net/blog/20240920-prometheus-grafana-cloud/dashboard_prometheus.png]] +[[https://img.cleberg.net/blog/20240920-prometheus-grafana-cloud/dashboard_prometheus.webp]] @@ -200,19 +200,19 @@ Continue: Below are a few screenshots from my current VS Codium window: #+caption: Available Continue Commands -[[https://img.cleberg.net/blog/20241031-continue-ollama-code-assistant/continue_commands.png]] +[[https://img.cleberg.net/blog/20241031-continue-ollama-code-assistant/continue_commands.webp]] #+caption: Continue Fullscreen Chat Window -[[https://img.cleberg.net/blog/20241031-continue-ollama-code-assistant/continue_fullscreen.png]] +[[https://img.cleberg.net/blog/20241031-continue-ollama-code-assistant/continue_fullscreen.webp]] #+caption: Inline Hotkeys -[[https://img.cleberg.net/blog/20241031-continue-ollama-code-assistant/continue_inline_hotkeys.png]] +[[https://img.cleberg.net/blog/20241031-continue-ollama-code-assistant/continue_inline_hotkeys.webp]] #+caption: Inline Editing Suggestions -[[https://img.cleberg.net/blog/20241031-continue-ollama-code-assistant/continue_inline.png]] +[[https://img.cleberg.net/blog/20241031-continue-ollama-code-assistant/continue_inline.webp]] #+caption: Sidebar Context Window -[[https://img.cleberg.net/blog/20241031-continue-ollama-code-assistant/continue_sidebar.png]] +[[https://img.cleberg.net/blog/20241031-continue-ollama-code-assistant/continue_sidebar.webp]] * Conclusion @@ -59,7 +59,7 @@ browsing from a different device. Don't forget to allow the port through your machine's firewall, if you have one enabled. #+caption: Login -[[https://img.cleberg.net/blog/20241229-thelounge/login.png]] +[[https://img.cleberg.net/blog/20241229-thelounge/login.webp]] ** Nginx Reverse Proxy @@ -154,10 +154,10 @@ bottom of the sidebar and connect to individual channels or users via the plus (=+=) button next to your server's name in the sidebar. #+caption: New Server Connection -[[https://img.cleberg.net/blog/20241229-thelounge/new_connection.png]] +[[https://img.cleberg.net/blog/20241229-thelounge/new_connection.webp]] #+caption: Existing Server Connection -[[https://img.cleberg.net/blog/20241229-thelounge/existing_connection.png]] +[[https://img.cleberg.net/blog/20241229-thelounge/existing_connection.webp]] #+caption: Channel View -[[https://img.cleberg.net/blog/20241229-thelounge/channel.png]] +[[https://img.cleberg.net/blog/20241229-thelounge/channel.webp]] @@ -124,22 +124,22 @@ The app is now available on your custom domain! ** Screenshots #+caption: Login -[[https://img.cleberg.net/blog/20250123-self-hosting-tandoor/login.png]] +[[https://img.cleberg.net/blog/20250123-self-hosting-tandoor/login.webp]] #+caption: Recipes -[[https://img.cleberg.net/blog/20250123-self-hosting-tandoor/recipes.png]] +[[https://img.cleberg.net/blog/20250123-self-hosting-tandoor/recipes.webp]] #+caption: Meal Plan -[[https://img.cleberg.net/blog/20250123-self-hosting-tandoor/mealplan.png]] +[[https://img.cleberg.net/blog/20250123-self-hosting-tandoor/mealplan.webp]] #+caption: Shopping Lists -[[https://img.cleberg.net/blog/20250123-self-hosting-tandoor/shopping.png]] +[[https://img.cleberg.net/blog/20250123-self-hosting-tandoor/shopping.webp]] #+caption: Cook Book -[[https://img.cleberg.net/blog/20250123-self-hosting-tandoor/cookbook.png]] +[[https://img.cleberg.net/blog/20250123-self-hosting-tandoor/cookbook.webp]] #+caption: Import -[[https://img.cleberg.net/blog/20250123-self-hosting-tandoor/import.png]] +[[https://img.cleberg.net/blog/20250123-self-hosting-tandoor/import.webp]] #+caption: Administration Panel -[[https://img.cleberg.net/blog/20250123-self-hosting-tandoor/admin.png]] +[[https://img.cleberg.net/blog/20250123-self-hosting-tandoor/admin.webp]] @@ -54,7 +54,7 @@ far as I can tell, there is no free tier available. In my opinion, this is a good thing as I hesitate to understand how privacy-focused apps make money when they offer free services to users. -[[https://img.cleberg.net/blog/20250211-obscura-vpn/payment.png]] +[[https://img.cleberg.net/blog/20250211-obscura-vpn/payment.webp]] #+caption: Payment ** Connection @@ -63,10 +63,10 @@ Once you've enrolled in either a subscription or one-time payment, Obscura will return you to the app and allow you to connect. You can choose a specific server location or automatically connect. -[[https://img.cleberg.net/blog/20250211-obscura-vpn/connect.png]] +[[https://img.cleberg.net/blog/20250211-obscura-vpn/connect.webp]] #+caption: Initial Connection -[[https://img.cleberg.net/blog/20250211-obscura-vpn/toolbar.png]] +[[https://img.cleberg.net/blog/20250211-obscura-vpn/toolbar.webp]] #+caption: Toolbar Utility ** Speed @@ -90,7 +90,7 @@ nodes before connecting to your target. From the image below, we can see that Mullvad confirmed my traffic to be connected through a Mullvad IP address. -[[https://img.cleberg.net/blog/20250211-obscura-vpn/mullvad-check.png]] +[[https://img.cleberg.net/blog/20250211-obscura-vpn/mullvad-check.webp]] #+caption: Mullvad Check * Final Thoughts @@ -17,7 +17,7 @@ are now supported. This is a great jump from the state it was at in 2022 - 2023 when I last checked. #+caption: Asahi Linux Device Support -[[https://img.cleberg.net/blog/20250502-asahi-linux/device_support.png]] +[[https://img.cleberg.net/blog/20250502-asahi-linux/device_support.webp]] ** Installation @@ -60,13 +60,13 @@ see I started using the WhiteSur theme as it provides a more comfortable layout for macOS users. #+caption: KDE -[[https://img.cleberg.net/blog/20250502-asahi-linux/kde.png]] +[[https://img.cleberg.net/blog/20250502-asahi-linux/kde.webp]] When diving into the system information panel, we can see that this machine is running Fedora Linux Asahi Remix 42 on an Apple M2 Pro laptop with 16GB of RAM. #+caption: System Information -[[https://img.cleberg.net/blog/20250502-asahi-linux/sysinfo.png]] +[[https://img.cleberg.net/blog/20250502-asahi-linux/sysinfo.webp]] As I noted above, the first thing I did after installing Asahi and taking a few screenshots was to install and change themes. @@ -77,7 +77,7 @@ color palette, as well as the Nothing theme that uses a dark black and red color palette. #+caption: Themes -[[https://img.cleberg.net/blog/20250502-asahi-linux/themes.png]] +[[https://img.cleberg.net/blog/20250502-asahi-linux/themes.webp]] One of the things I use my laptop for the most is consuming media (music, television shows, movies, etc.), so I had to make sure that my bluetooth devices @@ -92,14 +92,14 @@ capabilities like pausing media when you remove an AirPod from your ear. The lack of these advanced features doesn't bother me, but some people may be. #+caption: Bluetooth -[[https://img.cleberg.net/blog/20250502-asahi-linux/bluetooth.png]] +[[https://img.cleberg.net/blog/20250502-asahi-linux/bluetooth.webp]] Next, I was able to connect my PS5 controller via USB-C and Asahi picked up the connect instantly in the settings menu. You can move the sticks and press all of the buttons to see if they're recognized within this settings menu. #+caption: Game Pad Settings -[[https://img.cleberg.net/blog/20250502-asahi-linux/gamepad_settings.png]] +[[https://img.cleberg.net/blog/20250502-asahi-linux/gamepad_settings.webp]] I had a bit of an issue launching Steam the first time, as I was getting an AVC Denial error from SELinux. To fix this, I had to manually allow the Steam @@ -11,7 +11,7 @@ take me next./ | Old Theme | New Theme | |-----------------------------------------------------------------------+----------------------------------------------------------------------| -| https://img.cleberg.net/blog/20250905-human-website-design/before.png | https://img.cleberg.net/blog/20250905-human-website-design/after.png | +| https://img.cleberg.net/blog/20250905-human-website-design/before.webp | https://img.cleberg.net/blog/20250905-human-website-design/after.webp | * Inspiration @@ -15,7 +15,7 @@ really any reason that I had any of that CSS at all? | Old Theme | New Theme | |-----------------------------------------------------------------------+---------------------------------------------------------------------| -| https://img.cleberg.net/blog/20250905-human-website-design/after.png | https://img.cleberg.net/blog/20250925-minimalist-website-redesign/minimal.png | +| https://img.cleberg.net/blog/20250905-human-website-design/after.webp | https://img.cleberg.net/blog/20250925-minimalist-website-redesign/minimal.webp | * Inspiration @@ -4,7 +4,7 @@ #+slug: rocket-league-macos #+caption: Rocket League on macOS -[[https://img.cleberg.net/blog/20251006-rocket-league-macos/launch.png]] +[[https://img.cleberg.net/blog/20251006-rocket-league-macos/launch.webp]] * Intro @@ -35,16 +35,16 @@ When the installer finishes, you’ll see a bottle (a sandboxed Windows environment) like the one below: #+caption: Epic Games Store Bottle -[[https://img.cleberg.net/blog/20251006-rocket-league-macos/bottle.png]] +[[https://img.cleberg.net/blog/20251006-rocket-league-macos/bottle.webp]] You can now launch the Epic application. Epic will update itself and then present the login screen: #+caption: Epic Updater -[[https://img.cleberg.net/blog/20251006-rocket-league-macos/updater.png]] +[[https://img.cleberg.net/blog/20251006-rocket-league-macos/updater.webp]] #+caption: Epic Login -[[https://img.cleberg.net/blog/20251006-rocket-league-macos/login.png]] +[[https://img.cleberg.net/blog/20251006-rocket-league-macos/login.webp]] * Install Rocket League @@ -61,10 +61,10 @@ Take a look at the screenshots I was able to capture while playing on my M2 MacBook Pro with a PS5 Dualsense Edge controller: #+caption: Main Menu -[[https://img.cleberg.net/blog/20251006-rocket-league-macos/menu.png]] +[[https://img.cleberg.net/blog/20251006-rocket-league-macos/menu.webp]] #+caption: In-Game -[[https://img.cleberg.net/blog/20251006-rocket-league-macos/game.png]] +[[https://img.cleberg.net/blog/20251006-rocket-league-macos/game.webp]] * Tips & Troubleshooting @@ -12,10 +12,10 @@ The first is a website ([[https://avas.space][ava's space]]) and the second is a notes, using [[https://www.orgroam.com/][org-roam]]. #+caption: avas.space -[[https://img.cleberg.net/blog/20251024-digital-garden/ava.png]] +[[https://img.cleberg.net/blog/20251024-digital-garden/ava.webp]] #+caption: Org Roam -[[https://img.cleberg.net/blog/20251024-digital-garden/orgroam.png]] +[[https://img.cleberg.net/blog/20251024-digital-garden/orgroam.webp]] A digital garden is a personal space, just for you. It could serve any number of purposes, which I'll get into later, but the key is that it serves a specific @@ -61,7 +61,7 @@ See the graph below for a visualization of each job's salary over time, as well as percentage increases or decreases between jobs. #+caption: Salary Visualization -[[https://img.cleberg.net/blog/salary/salary.png]] +[[https://img.cleberg.net/blog/salary/salary.webp]] This page was inspired by [[https://xeiaso.net/salary-transparency/][Xe]], and I'm quoting the following wording from them as I want to reiterate this piece: