From c8509de9eaa4d6238ff1f27a0657de255ca03f28 Mon Sep 17 00:00:00 2001 From: John Bowdre Date: Tue, 16 Jan 2024 16:52:50 -0600 Subject: [PATCH] add missing alt text --- .../3d-modeling-and-printing-on-chrome-os/index.md | 12 ++++++------ .../index.md | 4 ++-- content/posts/spotlight-on-torchlight/index.md | 2 +- .../tanzu-community-edition-k8s-homelab/index.md | 3 ++- .../posts/vra8-custom-provisioning-part-two/index.md | 4 ++-- 5 files changed, 13 insertions(+), 12 deletions(-) diff --git a/content/posts/3d-modeling-and-printing-on-chrome-os/index.md b/content/posts/3d-modeling-and-printing-on-chrome-os/index.md index c876383..950e72b 100644 --- a/content/posts/3d-modeling-and-printing-on-chrome-os/index.md +++ b/content/posts/3d-modeling-and-printing-on-chrome-os/index.md @@ -18,12 +18,12 @@ That's a pretty sweet setup, but I still needed a way to convert STL 3D models i Enter "Crostini," Chrome OS's [Linux (Beta) feature](https://chromium.googlesource.com/chromiumos/docs/+/master/containers_and_vms.md). It consists of a hardened Linux VM named `termina` which runs (by default) a Debian Buster LXD container named `penguin` (though you can spin up just about any container for which you can find an [image](https://us.images.linuxcontainers.org/)) and some fancy plumbing to let Chrome OS and Linux interact in specific clearly-defined ways. It's a brilliant balance between offering the flexibility of Linux while preserving Chrome OS's industry-leading security posture. -![Neofetch in the Crostini terminal](lhTnVwCO3.png) +![Screenshot of the 'neofetch' utility](lhTnVwCO3.png) There are plenty of great guides (like [this one](https://www.computerworld.com/article/3314739/linux-apps-on-chrome-os-an-easy-to-follow-guide.html)) on how to get started with Linux on Chrome OS so I won't rehash those steps here. One additional step you will probably want to take is make sure that your Chromebook is configured to enable hyperthreading, as it may have [hyperthreading disabled by default](https://support.google.com/chromebook/answer/9340236). Just plug `chrome://flags/#scheduler-configuration` into Chrome's address bar, set it to `Enables Hyper-Threading on relevant CPUs`, and then click the button to restart your Chromebook. You'll thank me later. -![Enabling hyperthreading](LHax6lAwh.png) +![Screenshot of ChromeOS flags page showing that '#scheduler-configuration' is set to 'Enables Hyper-Threading on relevant CPUs](LHax6lAwh.png) ### The Software I settled on using [FreeCAD](https://www.freecadweb.org/) for parametric modeling and [Ultimaker Cura](https://ultimaker.com/software/ultimaker-cura) for my GCODE slicer, but unfortunately getting them working cleanly wasn't entirely straightforward. @@ -68,7 +68,7 @@ Comment[de_DE]=Feature-basierter parametrischer Modellierer MimeType=application/x-extension-fcstd ``` That's it! Get on with your 3D-modeling bad self. -![FreeCAD](qDTXt1jp3.png) +![Screenshot of FreeCAD showing a 3d model being worked on](qDTXt1jp3.png) Now that you've got a model, be sure to [export it as an STL mesh](https://wiki.freecadweb.org/Export_to_STL_or_OBJ) so you can import it into your slicer. #### Ultimaker Cura @@ -88,12 +88,12 @@ sudo apt update && sudo apt install menulibre # [tl! .cmd:2] menulibre ``` Just plug in the relevant details (you can grab the appropriate icon [here](https://github.com/Ultimaker/Cura/blob/master/icons/cura-128.png)), hit the filing cabinet Save icon, and you should then be able to search for Cura from the Chrome OS launcher. -![Using menulibre to create the launcher shortcut](VTISYOKHO.png) +![Screenshot demoing the use of 'menulibre' to create the launcher shortcut](VTISYOKHO.png) -![Ultimaker Cura](f8nRJcyI6.png) +![Screenshot of Ultimake Cura software](f8nRJcyI6.png) From there, just import the STL mesh, configure the appropriate settings, slice, and save the resulting GCODE. You can then just upload the GCODE straight to The Spaghetti Detective and kick off the print. -![Successful print, designed and sliced on Chrome OS!](2g57odtq2.jpeg) +![A 3d-printed adapter for mounting a rear reflector on a bicycle, designed, sliced, and printed from a Chromebook](2g57odtq2.jpeg) Nice! \ No newline at end of file diff --git a/content/posts/abusing-chromes-custom-search-engines-for-fun-and-profit/index.md b/content/posts/abusing-chromes-custom-search-engines-for-fun-and-profit/index.md index d3ceca0..39ff9a3 100644 --- a/content/posts/abusing-chromes-custom-search-engines-for-fun-and-profit/index.md +++ b/content/posts/abusing-chromes-custom-search-engines-for-fun-and-profit/index.md @@ -17,7 +17,7 @@ Point your browser to `chrome://settings/searchEngines` to see which sites are r Each of these search engine entries has three parts: a name ("Search engine"), a Keyword, and a Query URL. The "Search engine" title is just what will appear in the Omnibox when the search engine gets triggered, the Keyword is what you'll type in the Omnibox to trigger it, and the Query URL tells Chrome how to handle the search. All you have to do is type the keyword, hit your Tab key to activate the search, input your query, and hit Enter: ![Using a custom search engine](o_o7rt4pA.gif) -For sites which register themselves automatically, the keyword is often set to something like `domain.tld` so it might make sense to assign it as something shorter or more descriptive. +For sites which register themselves automatically, the keyword is often set to something like `domain.tld` so it might make sense to assign it as something shorter or more descriptive. The Query URL is basically just what appears in the address bar when you search the site directly, with `%s` placed where your query text would normally go. You can view these details for a given search entry by tapping the three-dot menu button and selecting "Edit", and you can manually create new entries by hitting that big friendly "Add" button: ![Editing a search engine](fmLDUWjia.png) @@ -55,7 +55,7 @@ This works for pretty much any site which parses the URL to render certain conte Your Query URL doesn't even need to include a query at all! You can use the Custom Search Engines as a sort of hyper-fast shortcut to pages you visit frequently. If I create a new entry with the Keyword `searchax` and `abusing-chromes-custom-search-engines-for-fun-and-profit` as the query URL, I can quickly open to this page by typing `searchax[tab][enter]`: ![Custom search shortener](YilNCaHil.png) -I use that trick pretty regularly for getting back to vCenter appliance management interfaces without having to type out the full FQDN and port number and all that. +I use that trick pretty regularly for getting back to vCenter appliance management interfaces without having to type out the full FQDN and port number and all that. ------ diff --git a/content/posts/spotlight-on-torchlight/index.md b/content/posts/spotlight-on-torchlight/index.md index 4dd2f0c..6faf1e4 100644 --- a/content/posts/spotlight-on-torchlight/index.md +++ b/content/posts/spotlight-on-torchlight/index.md @@ -536,7 +536,7 @@ Serving HTTP on 0.0.0.0 port 1313 (http://0.0.0.0:1313/) ... # [tl! focus:1] #### Netlify Setting up Netlify to leverage the Torchlight API is kind of similar. I'll start with logging in to the [Netlify dashboard](https://app.netlify.com) and navigating to **Site Configuration > Environment Variables**. There, I'll click on **Add a variable > Add a ingle variable**. I'll give the new variable a key of `TORCHLIGHT_TOKEN` and set its value to the token I obtained earlier. -![](netlify-env-var.png) +![Screenshot showing the creation of the 'TORCHLIGHT_TOKEN' variable in Netlify](netlify-env-var.png) Once that's done, I edit the `netlify.toml` file at the root of my site repo to alter the build commands: ```toml diff --git a/content/posts/tanzu-community-edition-k8s-homelab/index.md b/content/posts/tanzu-community-edition-k8s-homelab/index.md index 65fa9dc..f6d26f4 100644 --- a/content/posts/tanzu-community-edition-k8s-homelab/index.md +++ b/content/posts/tanzu-community-edition-k8s-homelab/index.md @@ -983,7 +983,8 @@ I'll define the new subnet as `192.168.1.0/24`. Once I enable the option to *Che ![A new (but empty) subnet](new_subnet_pre_scan.png) It shows the scanner associated with the subnet, but no data yet. I'll need to wait a few minutes for the first scan to kick off (at the five-minute interval I defined in the configuration). -![](five_minutes.gif) + +![GIF which says 'Five Minutes Later!'](five_minutes.gif) ![Newly discovered IPs!](newly-discovered_IPs.png) Woah, it actually works! diff --git a/content/posts/vra8-custom-provisioning-part-two/index.md b/content/posts/vra8-custom-provisioning-part-two/index.md index 2dbaf4b..7bc25c4 100644 --- a/content/posts/vra8-custom-provisioning-part-two/index.md +++ b/content/posts/vra8-custom-provisioning-part-two/index.md @@ -331,9 +331,9 @@ I'll do that with another scriptable task element, named `Apply new names`, whic {{% notice note "Binding a workflow output" %}} To easily create a new workflow output and bind it to a task's output, click the task's **Add New** option like usual: -![](add_new.png) +![Screenshot showing the creation of a new output](add_new.png) Select **Output** at the top of the *New Variable* dialog and the complete the form with the other required details: -![](new_output_parameter.png) +![Screenshot showing the new output parameter with 'Name: resourceNames' and 'Type: string'](new_output_parameter.png) {{% /notice %}}