September 2024 Updates
Split Battery Page
The Lithium Thionyl Chloride and Zinc-Air info have been split from the main Batteries page into their own pages. This was done to match the other battery chemistries.
Embedded Template Library (ETL)
Added info on the C++ Embedded Template Library (ETL).
nRF Connect for VS Code
Added info on nRF Connect for VS Code.
I2S Communication Protocol
Added info on the I2S Communication Protocol.
Cover Images
Added cover images to many pages, especially those in the Communication Protocols section.
Added Ability To Add Page Aliases
I added the ability for document pages to specify aliases. Aliases are great when you are moving pages around and the existing page is linked (and has a significant amount of traffic) from external sites. These aliases are added to each .mdx
documents front matter like so:
This field is specified in the content collection so it becomes available in the .data
object when inside the getStaticPaths()
function. To specify it in the collection’s schema, add the following to the src/content/config.ts
file:
Then, in the [...slug].astro
file which contains the getStaticPaths()
function which determines the routes for the site, I check if the page has aliases and if so, add them to the static paths array. Alias paths are passed a aliasTo
prop which is used to redirect to the correct page:
Created a Programming > Design Section
I decided that the Programming > General
section was somewhat mis-labeled (what is “General” mean anyway?). Some of the pages under this section seemed to fit a “Design” section, so I created a new section called Programming > Design
. As a start, the pages on state machines have been moved across.
Added Info on GNU Linker Scripts
Added info on GNU Linker Scripts.
Added New Optocoupler Schematic Symbols
Added new schematic symbols for bidirectional phototransistor optocouplers.
Moved the EEPROM Info to it’s Own Page
The EEPROM info has been moved from the Memory page to it’s own EEPROM page.
Added Code To Convert From Year/Month/Day To Day Of The Week
Added code to calculate the day of the week from the year, month and day in the Real Time Clock (RTC) ICs page.
Google Analytics vs. Umami
Umami has now been running long enough to do a useful comparison with Google Analytics. Below are the results for this blog, NinjaCalc and NinjaTerm. The time periods are slightly different for each site (due to different dates on which the data was valid).
Blog
Time range: 1st April 2024 - 30th June 2024 (3 months)
Metric | Google Analytics | Umami |
---|---|---|
Views | 92k | 116k |
Visitors (Users) | 45k | 66.9k |
NinjaCalc
Time range: 1st May 2024 - 31st August 2024 (4 months)
Metric | Google Analytics | Umami |
---|---|---|
Views | 13k | 4.32k |
Visitors (Users) | 1.1k | 1.57k |
NinjaTerm
Time range: 1st April 2024 - 31st August 2024 (5 months)
Metric | Google Analytics | Umami |
---|---|---|
Views | 1.5k | 3.21k |
Visitors (Users) | 590 | 1.18k |
Added Info on the Memfault CLI
Added info on the Memfault CLI.
Updated Menu Styling
The default Starlight menu styling provided different font size and weights to sections and links. Given the arbitrarily nested nature of this site’s menu hierarchy, this did not look that great. I decided to make all the menu items look the same. To this I add to add some more selective CSS that would override the default Starlight styling.
Info on Phototransistors
Added info on phototransistors, including the schematic symbol and a basic circuit.
Added Figure/Table Numbering and References
I wanted to be able to refer to figures and tables within page text using syntax like “Figure 1”, “Table 2” e.t.c, rather than “see the figure below”. Unfortunately this feature is not supported by .mdx
out-of-the-box.
I figured I had two options to implement this:
- Write a remark/rehype plugin that runs during the build process.
- Write a Typescript script that runs on the client’s browser.
Even though the remark/rehype plug-in would of have been the best for load speeds, I decided to go with the Typescript route as it would be easier to implement (I have no experience with remark/rehype).
I decided to call this feature “Item References” to distinguish them from the references already used to cite sources. I made a <IRef />
Astro component that can be used to reference items. This allows page authors to write this:
The user will see <IRef ... />
replaced with the text Figure 1
, and the figure will have Figure 1
prefixed to the caption text.
So far only images and tables can be referenced, but I plan on adding support for equations and code snippets soon. The entire client-side script can be shown below.