Happy New Year 2021
2020 may be the year we all want to forget. The silver lining is that the lockdown period gave me some extra time to work on extra content and improvements for this blog.
Statistics for 2020
This is the third year in a row in which I have used Google Analytics for statistics.
Content
This year, I thought it would be interesting to also include the total number of content pages on the blog, as well as the number of lines, words and characters in these pages, as counted on Jan 1st of the given year. I am only counting human created “pages” and “posts” in this tally, and not the automatically generated large number of “tag” and “category” pages. To find the last commit made in a given calender year I used the git
command:
git rev-list -1 --before="Jan 01 2020" master
This spits out the hash of the desired commit. After checking out that commit I wrote a small Python script for tallying the number of _index.md
files in the content
directory of this blog, as well as counting the number of lines, words and characters within these files.
Year | Num. Content Files | Num. Lines | Num. Words | Num. Chars |
---|---|---|---|---|
2019 | 925 | 71.4k | 380k | 2.26M |
2020 | 1005 | 74.8k | 424k | 2.51M |
2021 | 1089 | 80.9k | 470k | 2.80M |
For a given year, all data is counted at the beginning of that year (i.e. the 1st of Jan at 00:00:00). I hope to increase the word per page ratio for the 2021 year, as I’ve come to realize that I’ve been splitting content across too many sub-pages, which both makes user navigation harder and hurts search rankings. This data unfortunately only goes as far back as I’ve used git
to manage to blog…before 2019 the blog was managed by Wordpress running on a server.
Usage Analytics Summary
Year | Num. Page Views | Num. Users |
---|---|---|
2017 | 83k | 41k |
2018 | 116k | 63k |
2019 | 99k | 49k |
2020 | 134k | 97k |

A comparison of the number of page views per week for the 2019 and 2020 years. Image from Google Analytics.

A comparison of the number of users per week for the 2018 and 2019 years. Image from Google Analytics.
As per standard Google nomenclature, a page view is a single view of a page (which can be a returning or new user). A user is a unique person who has visited this website at least once.
Most Popular Pages
The top 6 pages, ranked by number of page views:
Again, we see the Linux-related serial port and CAN bus pages that shifted to top position in 2019 remain there for 2020.
Acquisition
Most Popular Referrers
Goal Completion
Looking back at the Happy New Year 2020 page the goals were rather light, in fact, only the one! It would of looked really bad if I hadn’t completed this!
- Integrate more of the calculators at calc.mbedded.ninja into the pages of this blog (blog.mbedded.ninja). DONE: The SEO of the Vue-based SPA was not great. I ended up porting NinjaCalc to Next.js this year, in part because of easier server-side rendering. Many of the calculator pages of NinjaCalc have been integrated into relevant pages on this blog.
Plans For This Year
- More content! (this is never not a goal)
- More diagrams: I’m beginning to think that some of the content on this blog is getting too text heavy, and there are not enough images. I hope to pad out text with more images this year, using LibreOffice Draw for diagrams, screenshots from KiCAD for schematics, and photos for examples.
- Decrease the number of sub-pages, and increase the num. of words per page of content: As mentioned above, I believe in the past I have split content between too many hierarchical subpages, which both makes the contents harder to read/fine, as well as hurting search engine rankings.
December 2020 Updates
- Started a new page (in notes form) on SiFive microcontrollers.
Started a new page (in notes form) on Azure RTOS ThreadX.
Added a diagram to the C Dynamic Memory Allocation page.
- Added a basic voltage-doubling charge pump schematic to the Charge Pumps page
- Added more SPICE simulation info to the A Beginners Intro To KiCad page.
- Added schematics and explanations around op-amp based current sinks to the Op-Amp page.
November 2020 Updates
- Started a new page (in notes form) on Digital-to-Analogue Converters (DACs).
Started a new page (in notes form) on Voltage References.
Added information about the Vlpp open source library to the C++ Callbacks page.
Added a new page (just in notes form) on the I3C Communication Protocol.
- Fleshed out the Linux Serial Ports Using C/C++ page with more info on custom baud rates.
October 2020 Updates
Resolved Netlify build error which started with commit 377ec8:
5:07:04 PM: ┌─────────────────────────────────────────────────────┐ 5:07:04 PM: │ Plugin "@netlify/plugin-deploy-core" internal error │ 5:07:04 PM: └─────────────────────────────────────────────────────┘ 5:07:04 PM: 5:07:04 PM: Error message 5:07:04 PM: Invalid response from buildbot: Error: The TCP connection with the buildbot timed out after 60000ms
Then commit 377ec8 started working (the build took 1m 30s). But we got the error message with commit 58fcb9:
9:25:17 PM: ┌────────────────────────────────────┐ 9:25:17 PM: │ 1. build.command from netlify.toml │ 9:25:17 PM: └────────────────────────────────────┘ 9:25:17 PM: 9:25:17 PM: $ hugo --minify 9:26:18 PM: Building sites … Total in 61644 ms 9:26:18 PM: Error: Error building site: "/opt/build/repo/content/electronics/projects/columbus-radio/index.md:1:1": timed out initializing value. You may have a circular loop in a shortcode, or your site may have resources that take longer to build than the `timeout` limit in your Hugo config file.
I then tried Netlify options to rebuild the
HEAD
of themaster
branch without cache, and the build worked!Added a page on the SOT-583 component package.
Added a page on the SOT-883 component package.
Added a page on the PowerDI123 component package.
Added information about SOA (Safe Operating Area) graphs and how to use them to the MOSFET page
September 2020 Updates
- Added info about board packages to the Arduino page.
Added info about schematic page templates to the A Beginners Intro To KiCAD page.
Added support for the search service Algolia.
- Updated information about the
BC
range of BJTs on the Bipolar Junction Transistors (BJTs) page.
Added more online simulation tools to the Circuit Simulation page.
Added a new page on 555 Timer Circuits. Added a 555 timer calculator to NinjaCalc (which is also embedded on the 555 Timer Circuits page).
Updated the Mbed Studio page.
Added a page on the EasyScale communication protocol.
Migrated NinjaCalc from a Vue.js based app to Next.js/React based app. This took quite a long time to migrate, I’m estimating about 32 hours to migrate all functionality except for two calculators to Next.js. Deployments are now automatically done by Vercel (I’m using the “Hobby” tier which is free forever). Unit/functional CICD testing has also been added with GitHub Actions. Commit https://github.com/gbmhunter/NinjaCalc/commit/458137fb79237562acb8a3f3d09a13d30438bb49 was the beginning of the migration.
Updated the Cables page with more information on cable insulation materials and combined power/data cables.