This is the first post in the Vinnie Research & Exploration Log (REL). This journal aims to serve several purposes.
- This journal is intended to be an off shoot of my normal writing that focus on reporting discoveries, knowledge, and new information learned. While my normal developer journal is a catch all for these types of things as well, this is a more curated set of articles that center around pre-determined topics to research.
- Unlike my typical developer journal, this set of articles are intended to be viewed by others and not just useful for my own reflection and retrospection.
- Lastly, I've learned in the past couple of years that you should never start a project without a plan and the first part of that plan is to know where you will store your files and content. This log should serve as that location for things within scope.
To kick things off, this blog site itself is powered by Gatsby, a React based static site generator, that is capable of parsing and presenting all manner of web content.
I've always been partial to static site generators that parse markdown as the primary source format. In otherwords, I prefer to always write all of my content in markdown and then I can easily move that same content from site generate to site generator or markdown editor to markdown editor. Markdown itself is a text based format that can be easily viewable from any text editor and is remarkably good at being revision controlled in modern platforms like git.
Gatsby is based on the widly popular client side React framework. The way a typical gatsby site is constructed is through the compilation and configuration of a number of Gatsby plugins.
I've deployed several Gatsby projects in the past, but they were all based on starter commands. After Gatsby CLI is installed, you can run various
gatsby commands directly from the command prompt. One of these commands will allow you to have gatsby automatically download a template or starter project from github locally on your machine. From here, you simply fixup the configurations and commitpush changes to your own git repository.
It wasn't until today that I actually decided to take a look under the hood. Turns out that Gatsby has a good tutorial to show users how to create their own Blog site from scratch. The conclusion I've ultimately come to is that most of the more simple started packs that I've found online are just the tutorial output with minor stylistic differences or external service integrations. Sometimes the plugins used are abstracted away behind a larger theme plugin, which is mildly infurating because it becomes a lot harder to extend something buried in the node_modules directory.
Some key take aways that I've got from this experience is that although Gatsby starter packs are useful for getting something up and running quit quickly, you should always take stock of the plugins the pack is using and look up the assumptions and configuration options for those you don't recognize.
I'm a noob when it comes to React and React Native. I've only started learning the framework for the first time in Spring 2020. As such, I am constantly tripping over awesome "new" technologies that have been developed since I last did web development back in 2005. The latest is the Typography.js library. This neat little bugger can completely change the look and feel of an entire site's text. Typograpy themes do the same thing as color melodies but for the shape and appearance of the text on a site.
You can see a showcase of these themes and make tweaks within the themes as Typopgrahy.js's homepage.
Since I originally stated that this log was for intentional research and explorations, I suppose it would be good to log ahead of time some of the research topics I plan to pursue. Note: This list will likely change as time goes on, so don't consider it gospel.
- Transitioning from Python 2 to 3
- The true impact of IPv6 in embedded development.
- DNSSEC Internals
- Containerization - Docker (Compose/Swarm), Kubernetes
- Embedded DevOps - Containerization -> Jenkins
- Hardware Description Languages (VHDL,VeriLog)
- Advanced GDB/LLDB usage
- JTAG Internals and State Machine
- Linux Kernel Device Tree Internals
- Building DIY Linux For Commercial DIY Platforms (e.g. RPi)
- Building a test orchestration system for heterogenous systems.
- Development of a program to determine the delta of two tar files.