Johnathan Irvin

Goodbye Cruel World

14 July 2022

JohnathanIrvin.com commits seppuku. Now an Isekai, the website is reborn.

Nearly two forsaken years have passed since JohnathanIrvin.com received enhancements. The stagnant beast lacked honor. The creature of horror ignored the security bells. It cared not to provide value. Death was the only way to ensure reincarnation.

Thrust forth the crisis of covid has sprung the need for software engineers. Elite hackers must rise to defeat the cybersecurity crisis. An onslaught of recruiter messages bombarded Johnathan's LinkedIn. The site knew the stakes were high. Little did we know how desperate the industry was for talented engineers.

With a harness of experience, we set out to change the status quo.

Table Of Contents

Beautification Warning

Blessed not with visual creativity, the engineer was not a designer. He was an engineer.

The engineer had heard, "Your design skills are laughable."

The engineer replied, "I'm not a designer. I'm an engineer."

"I want my website to be beautiful."

The engineer laughed, "I use frameworks like Bootstrap and Materialize."

Minimalist sycophants beware the following:

Bravado Justification

The readers stakeholders needed justification for the engineer's bravado.

The engineer summoned a value proposition to justify the coming adventure.

He championed three areas of value.

  1. Security
  2. Content
  3. Metrics

Dumpster Fire (Security)

Security issues plagued the repository.

Dependabot alerted the engineer daily.

The engineer provided the hackers stakeholders with a truncated warrant list.

CVE Severity Description
CVE-2021-3803 7.5 High Inefficient Regular Expression Complexity
CVE-2021-23341 7.5 High Regular Expression Denial of Service (ReDoSI)
CVE-2022-0355 7.5 High Exposure of Sensitive Information
CVE-2020-7788 7.3 High Malicious INI file

The rabbit hole had only begun. An issue inside of Node.js led to the rise of these little devils popping up multiple times in different dependencies.

The hydra needed to stop. The engineer had not the time to learn how to stop the beast in its JavaScript landscape. The engineering effort would be better suited to Python.

The engineer emphasized protective measures benefits.

  1. Avoid litigation.
  2. Protect information.
  3. Stabalize mental health.

The engineer's security alert stress traumatized him with constant anxiety.

Value Add (Content)

The engineer navigated the lack-luster site map to identify hidden treasures. There were no treasures in these catacombs.

The engineer had a single article -- Hello World.

The wife stakeholders flogged the engineer for not producing content. An epic conflict ensued. Nearly fired, The engineer agreed to:

  1. Document experiments.
  2. Produce "regular" content.
  3. Make lists.

Stalking (Metrics)

The Google Analytics spies were able to provide decent intelligence.

The engineer knew relying on Google Analytics required JavaScript and could be unreliable. A trained engineer demanded more.

The engineer wanted to track unexpected behavior. The engineer needed to use the scientific method to deliver valuable features to the clients stakeholders.

New features take time to implement. The engineer would deliver more in the coming sprints.

Heroic Engineering

The engineer has been in the industry for over a decade. If stakeholders identify feature loss, they will fire the engineer.

The stakeholders need assurances of the engineer's heroics.

The engineer created a list of functionality to keep the stakeholders out of his man cave.

Feature Description
Favicon Browser/bookmark image.
Navigation Page links.
Social Media Contact links.
Footer Page's bottom. 😂
RSS Feed Article subscription.
Site Map Treasure trove. 🤦
Analytics Usage statistics.
Blog Article list. ⬇️
Article Semi-cohesive thoughts.

The engineer composed a fancy email to management stakeholders.

Hello Mr. Fancy Manager,

    I am pleased to supply you with features maintained in the new version of the site.

    Send concerns to 🗑.

Thank you,

The engineer

The engineer's written proof reassured the boss stakeholders. The engineer took a break of thirty minutes to entertain the children stakeholders.

Language Swap

The engineer agonized with JavaScript to absorb the knowledge of Jamstack. The engineer cried nightly and lamented the loss of security. Harassed with notifications from Dependabot, security concerns forced the engineer to switch to Python.

The engineer drank Death Wish. He cracked his knuckles and readied for several long weeks of smashing keys and criticizing himself.

The engineer drooled over the thought of eventually adding PyScript. Not that this release would have it. Maybe next release.

The Python microframework, Flask, boasted simplicity and speed. The engineer was inspired to use it. Flask replaced a non-existent backend with a simple, fast, and secure web framework.

The engineer discovered Starlite. Sorely disappointed, he lamented the community for its constant change. The engineer pushed forward despite a lack of motivation.

Shorter Templates

Hypertext Markup Language (HTML) is a redundancy goblin. Goblins are to be slain with simplicity. The engineer called forth PugJS. The engineer began to double his productivity. Behold the goblin slaying power of PugJS:

PugJS HTML
.p <p></p>
.h1 <h1></h1>
article.p <article><p></p></article>
article#id1 <article id="id1"></article>

The engineer required a rendering engine for Flask to be able to render the PugJS templates. The engineer discovered PyPugJs.

PyPugJS was implemented.

Borrowing Layout

The engineer stole borrowed the layout of the original website. The original code fruited a good base. Then with a little bit of creativity, the engineer stole borrowed more:

Feature "Borrowed" From
Header BootStrap Headers
Body Original Code
Footer BootStrap Footers

The engineer was ashamed of hard coded scalable vector graphics (SVGs). The engineer stole borrowed icons from bootstrap icons:

Keeping Old Pages

The engineer journalist lazily wrote a a single article, 'Hello World'. The engineer was saddened by the lack of content. Yet, readers stakeholders were not to lose previous content. Previous content used article/<year>/<month>/<day>/<title> routes. Previous content kept this information in the front matter of the article.

The engineer did not know of the term "front matter". The engineer stole borrowed ideas from Gridsome's GitHub repository. Gridsome outsources its front matter parsing to Gray Matter. A similar library must exist for Python.

The engineer googled python front matter and discovered python-frontmatter. The engineer was now able to parse the front matter of the article and use that to deliver the content.

Other Changes

The journalist lived in the past. The journalist could no longer write for his sites, IGamePress and EnomView. The journalist died.

The tagline removed journalist.

The researcher was born bright-eyed. The researcher examined all details closely. Experiments performed were recorded.

The tagline added the researcher.

Next Sprint

The manager said "Enjoy the weekend! Next sprint will be here on Monday."

The engineer grunted and said "I'll be back on Monday!"