All things Technical

Make sure Git knows about case-sensitive changes to your file names

May 31, 2022 - Estimated 1 minute read

It's only peculiar if you don't understand it and for a while, I didn't understand it. It builds locally but then can't resolve component on Netlify. It started with me migrating my blog from Gatsby 3 to 4. I had neglected my blog for months so my e…

Full article#Technical#React#JavaScript#Git

How to debug a specific Gatsby package on build

May 29, 2022 - Estimated 1 minute read

Originally posted on dev.to I got an error and needed to get verbose logs for a particular package during a Gatsby build. I came across this issue on GitHub with reference to a DEBUG env var that can be set to get better logs.

Full article#Technical#Gatsby#dev.to

Use React hooks inside an MDX story in Storybook

January 12, 2022 - Estimated 1 minute read

Originally posted on dev.to A story captures the rendered state of a UI component. Developers write multiple stories per component that describe all the “interesting” states a component can support. MDX is a standard file format that combines Markdo…

Full article#Technical#Storybook#React#JavaScript#dev.to

How can I deploy a ClojureScript web app to Google Firebase with GitHub Actions?

November 22, 2021 - Estimated 2 minute read

The goal of this guide is to show you how to deploy a ClojureScript web app to Google Firebase Hosting with GitHub Action deploys. There are a few assumptions and they are that you are already familiar with the basics of ClojureScript Firebase GitHu…

Full article#Technical#ClojureScript#Google Firebase

How can I use Tailwind in my ClojureScript web app?

November 20, 2021 - Estimated 7 minute read

The goal of this guide is to create a ClojureScript web application with Clojure CLI and integrate with Tailwind CSS. If you are looking to create a shadow-cljs project then you can follow this guide by Jacek Schae. There are a few assumptions and t…

Full article#Technical#ClojureScript#Clojure CLI#Tailwind CSS

How can I create a ClojureScript web app from scratch with Reagent and npm?

November 17, 2021 - Estimated 8 minute read

The goal of this guide is to create a basic Reagent ClojureScript web app from scratch using the Clojure CLI tools. We are going to bundle our JavaScript using Webpack, have HMR (Hot Module Replacement - reload components while coding) using Figwhee…

Full article#Technical#ClojureScript#Clojure CLI#Reagent#npm

How can I find deleted stuff in Git?

September 2, 2021 - Estimated 7 minute read

I was working on an about module a few months ago. I wasn't satisfied with it so I deleted it with all its related files 😬 Now I need to recover parts of this data that I had so conveniently discarded. 🤦‍♀️ I can't remember the exact location of the fi…

Full article#Technical#Git

A custom alias for a pretty Git log with a graph

September 2, 2021 - Estimated 3 minute read

I have added a git alias for by editing the global config so that it is not localized to a specific git repository. I added the following below the section 👇 will now print a pretty colored summarized log with a graph to indicate branching and m…

Full article#Technical#Git

Debugging gatsby-plugin-google-gtag for Google Analytics 4 with Gatsby

August 31, 2021 - Estimated 5 minute read

In this article I will cover how I installed and configured the plugin, added my custom track event, tried to test it and it didn't work so I went through a checklist of debugging the thing. Prerequisites I assume that you are already familiar with …

Full article#Technical#Gatsby#Analytics

Feature Development Lifecycle with minimum viable features

August 30, 2021 - Estimated 7 minute read

Successful features are in small bite-sized chunks that are released iteratively and regularly through the Feature Development Lifecycle. I just rewrote my blog. It took a while because I was pedantic about getting numerous features live. I think I …

Full article#Technical#Continuous Delivery

What I did to build a high performing and SEO happy Gatsby blog

August 29, 2021 - Estimated 7 minute read

As much as I want an attractive blog, I prefer a blog that is more discoverable and outperforms others. That makes the eye-candy totally worth it and I feel great knowing that I do the best I possibly can to make - what I hope to be - a great experi…

Full article#Technical#Gatsby#Performance#Security#Analytics

Emulating rendering options in Chrome DevTools

August 27, 2021 - Estimated 3 minute read

I wrote an article about Simulating mobile devices in Chrome way back in 2016. I decided to extend it with this article where I cover different rendering options that can be emulated from simple to extreme accessibility features. Let's dive right in…

Full article#Technical#Chrome DevTools

How I got started with my first Gatsby source & remark plugin

May 2, 2020 - Estimated 3 minute read

I created my first npm package - EVER! 🎉 It's a Gatsby source and transformer remark plugin called gatsby-remark-interactive-gifs. What that means is that it both extends the Gatsby GraphQL schema with what I call interactive gif data and it transla…

Full article#Technical#Gatsby

Git aliases

September 2, 2019 - Estimated 1 minute read

You can create Git aliases for long or repetitive commands which map to short cuts. This can make your workflow more efficient as it decreases the number of keystrokes involved. You create your alias using the Git config command which updates the Gi…

Full article#Technical#Git

gatsby-remark-emoji

September 1, 2019 - Estimated 1 minute read

I use this plugin for emojis on my website. The reference to all possible emojis are hidden here. The current emojis include the following. You can reference an emoji by surrounding the keyword with colons such as :emoji-key: 💯 A better, more accura…

Full article#Technical#Gatsby

Setup macOS development environment

August 31, 2019 - Estimated 9 minute read

Note: I am running macOS Mojave on a 2.8 GHz Intel Core i7 with 16 GB 2133 MHz LPDDR3 RAM. I am setting up my environment to write some awesome Clojure code. This environment is for Clojure and NodeJS development using the Spacemacs configuration wi…

Full article#Technical#Mac

Look, I have a MacBook Pro now

August 30, 2019 - Estimated 1 minute read

Hooray, I now have a new MacBook Pro! I never thought the day would come where that would happen. I've always been a Microsoft junkie, hacking away at daddy's computer as a young girl while other girls were having sleep overs and pillow fights and w…

Full article#Technical#Mac

The Silver Searcher

August 29, 2019 - Estimated 2 minute read

The utility was designed to replace 99% of the uses of grep. As stated in the man page Ack searches the named input FILEs (or standard input if no files are named, or the file name - is given) for lines containing a match to the given PATTERN . By …

Full article#Technical#Terminal

Creating a Clojure solution using IntelliJ

April 17, 2019 - Estimated 2 minute read

I am creating a simple Clojure web app and API. In this post I explore how to create each with the command and what references I need to use. I plan to work on a monolith IntelliJ and git solution so that I don't need to maintain multiple projects …

Full article#Technical#Clojure#IntelliJ

Greet users with the message of the day

February 15, 2019 - Estimated 1 minute read

The message of the day is known as motd. It's used to send a message to users after logging into a shell, commonly used on hosts. You can generate ASCII art and paste it into the motd file to spice things up. I found that patorjk.com offers a nice w…

Full article#Technical#Terminal#Linux

Cisco ASA cheat sheet

February 10, 2019 - Estimated 3 minute read

Cisco Adaptive Security Appliancy is known as the Cisco ASA. It is used to protect networks and data centres. It offers firewall, VPN and facilitates dynamic routing amongst other features and capabilities. It runs on Linux using a single Executable…

Full article#Technical#Terminal#Cisco#Cheat sheet

Getting started with Cisco Adaptive Security Virtual Appliance in AWS

February 9, 2019 - Estimated 5 minute read

I work with NATs and ACLs on Cisco ASA (Adaptive Security Appliance) in the terminal. I want a sandbox environment for me to go bonkers. I couldn't find an image from Cisco to download and install so I chose to go shopping on the AWS Marketplace. I …

Full article#Technical#Networking#Terminal#Cisco

Migrate my search from Solr to Elasticsearch

February 5, 2019 - Estimated 6 minute read

An NRT (near-realtime) search platform. It's about a one second delay from the time a document is indexed until it is searchable. I have been using Solr for my search but have been wanting to migrate to Elasticsearch for experience in this technolog…

Full article#Technical#Terminal#Cheat sheet#Linux

Installing Elasticsearch and Kibana

February 5, 2019 - Estimated 6 minute read

An NRT (near-realtime) search platform. It's about a one second delay from the time a document is indexed until it is searchable. Elasticsearch Installation There are a lot of ways to install Elasticsearch and on many different platforms. Pick your …

Full article#Technical#Terminal#Kibana#Elasticsearch

Uninstall an app from the terminal

February 4, 2019 - Estimated 1 minute read

I installed an application. It misbehaved. I wanted to try out a time tracking app. It should let me track reminders and record activity spent in meetings, out-of-office and on tasks I am working on, etc. I need to be able to interact with it in the…

Full article#Technical#Linux#Terminal

SSH for Days

February 3, 2019 - Estimated 3 minute read

Mosh - the mobile shell. This remote terminal let's you roam with intermittent connectivity without breaking your SSH tunnel. The package must be installed on both the client and server and does not need to be run as a super user. It replaces intera…

Full article#Technical#Linux

Set $JAVA_HOME in Linux

February 2, 2019 - Estimated 1 minute read

$JAVA_HOME an environment variable. It is the root path of the JRE or JDK which some applications and services use to access Java. I know that Java is installed but its not in the path , the output is empty. Configure for single user Open the shell…

Full article#Technical#Terminal#Cheat sheet

Working With Git Remotes

January 29, 2019 - Estimated 4 minute read

I have a repository with two remotes. origin is my personal repository and bitbucket is by BitBucket repository. The nugget of this post is to push to both branches in one command. The git remote command lets you create, view, and delete connections…

Full article#Technical#Git#Terminal#Cheat Sheet

Create a symlink for hidden files

January 27, 2019 - Estimated 1 minute read

I want to create a symlink for all hidden files excluding the hidden directories. I want to put my configuration files in my home directory into version control. I need to exclude the hidden directories because they contain binaries and what not. Us…

Full article#Technical#Terminal#Linux

Why I Create Atomic Commits In Git

January 26, 2019 - Estimated 3 minute read

I wrote about crafting changes into small atomic commits using Git. It looked like there was some confusion. I want to share what I understand about atomic and monolithic commits and why I create atomic commits in Git. I got a question in Reddit by …

Full article#Technical#Terminal#Git#CLI

How To Craft Your Changes Into Small Atomic Commits Using Git

January 15, 2019 - Estimated 7 minute read

Small, atomic commits makes it easier for code reviews, browsing the history and reverting changes. Life happens and commits can touch more lines and files than I want but the changes committed should be distinct. "Don't mix your apples with your to…

Full article#Technical#Git#Terminal#Cheat Sheet

Using the tar Command in Linux

January 14, 2019 - Estimated 10 minute read

I used to right-click on a zipped file and manage the archive using the GUI. Gone are those days. Now I mainly work with tar files and need a cheat sheet to remember the commands for the terminal. 😊 You can find that at the end of this post. This po…

Full article#Technical#Linux#Terminal#Cheat Sheet

Checking Disk Usage in Linux

January 13, 2019 - Estimated 11 minute read

I had to find out much free space was available on a file system on a Linux server. Now getting this information on the GUI is simple - a few clicks, modals and stuff, but the server doesn't have a GUI so it's off to the terminal I go 😋 The other sc…

Full article#Technical#Linux#Terminal#Cheat Sheet

A Service Has Gone Rogue. How Do I Manage It?

January 8, 2019 - Estimated 3 minute read

Once I installed a development service on port 3000 and I forgot about it. When I ran my project I couldn't start it because the port was in use. Baffled. 😕 This post forms part of a sequence of command line references that I will be writing where I…

Full article#Technical#Linux#Fedora#Cheat Sheet

Setting up Solr on Nginx with Let's Encrypt

December 16, 2018 - Estimated 15 minute read

I want to enable search on my blog. I started looking into different solutions. I started with ElasticSearch but came across too many issues to get it setup that I paused on that and moved on to Solr. I fully intend on working with ElasticSearch and…

Full article#Technical#Solr#Nginx#Let's Encrypt

Logging to Graylog in Clojure

November 30, 2018 - Estimated 2 minute read

It's simple. I wanted to log to Graylog from my Clojure application. I banged my head numerous times trying to figure out how and why it did't want to work. Here's what I did to complete my mission. Graylog Go to System > Inputs > Gelf UDP / TCP > L…

Full article#Technical#Clojure#Graylog#Logging

Setting up my environment in Fedora - Installing apps

October 20, 2018 - Estimated 5 minute read

I had to re-install so I documented my process. In this post, I focus on the installation of my most used apps. Get ready is Dandified YUM, a -based distribution package manager. To speed up the upgrade download times, try using fastest mirror. Ap…

Full article#Technical#Fedora#Linux

Setting up my environment in Fedora - Customizing my shell

October 20, 2018 - Estimated 4 minute read

I had to re-install so I documented my process. In this post, I focus on configuring my shell for a personalized experience. Install Oh My Zsh zsh is an interactive shell with many features that improve the command line experience. Oh My Zsh is a ve…

Full article#Technical#Fedora#Linux

Setting up my environment in Fedora - Creating a boot disk

October 20, 2018 - Estimated 1 minute read

I had to re-install so I documented my process. In this post, I focus on getting a Fedora 28 live media installation ready on a USB boot disk so that I can begin the installation process. Note: I am using a Lenovo Ideapad 330. When the logo appears …

Full article#Technical#Linux#Fedora

Setting up my environment in Fedora - Creating backups

October 20, 2018 - Estimated 3 minute read

I had to re-install so I documented my process. In this post, I focus on getting my data backed up so that I can restore it after the installation. Whatever isn't in git gets archived. This is mainly my home directory. I want it backed up to my VM a…

Full article#Technical#Linux#Fedora

Setting up my environment in Fedora

October 20, 2018 - Estimated 3 minute read

I needed to format my HDD because ... reasons. 😁 For a change, I decided to play around with Fedora instead of Ubuntu. The installation was painless and the user experience is much like what I am used to. I had a few hiccups on this journey mainly d…

Full article#Technical#Fedora#Linux

Datomic Cheat Sheet Series - Queries (Part 5) - Transactions

October 18, 2018 - Estimated 3 minute read

In this post I work through transactions. The example queries are grabbed from the Datomic Docs. If you want to get started with Datomic, check out the first post in the series. If you want to see other queries, then check out part 1 and part 2. If …

Full article#Technical#Datomic#Database#Cheat sheet

Datomic Cheat Sheet Series - Queries (Part 4) - Pull

September 20, 2018 - Estimated 3 minute read

In this post I work through pull expressions using the Datomic MusicBrainz sample database. The example queries are grabbed from the Datomic Docs. If you want to get started with Datomic, check out the first post in the series. If you want to see ot…

Full article#Technical#Datomic#Database#Cheat sheet

Datomic Cheat Sheet Series - Queries (Part 3) - Rules

September 20, 2018 - Estimated 2 minute read

In this post I work through the creation of rules using the Datomic MusicBrainz sample database. The example queries are grabbed from the Datomic Docs and the Datomic mbrainz sample GitHub pages. If you want to get started with Datomic, check out th…

Full article#Technical#Datomic#Database#Cheat sheet

Datomic Cheat Sheet Series - Queries (Part 2)

September 20, 2018 - Estimated 7 minute read

In this post I work through more querying capabilities using the Datomic MusicBrainz sample database. The example queries are grabbed from the Datomic Docs. If you want to get started with Datomic, check out the first post in the series. If you want…

Full article#Technical#Datomic#Database#Cheat sheet

Datomic Cheat Sheet Series - Queries (Part 1)

September 15, 2018 - Estimated 3 minute read

In this post I work through querying the Datomic MusicBrainz sample database. The example queries are grabbed from the Datomic Docs. If you want to get started with Datomic, check out the previous post in the series. Relationship diagram Create a n…

Full article#Technical#Datomic#Database#Cheat sheet

Datomic Cheat Sheet Series - Getting Started

September 6, 2018 - Estimated 6 minute read

Get started with the essentials of Datomic from installing Datomic, running a transactor, working with the Datomic console, running the Datomic REPL, creating and restoring a database, creating a schema and furnishing it with data. The goal of this …

Full article#Technical#Datomic#Database#Cheat sheet

Behind the Scenes: My Blog

August 28, 2018 - Estimated 3 minute read

I developed corporate programmer using a Ruby-based static-site generator called Jekyll. It transforms Markdown, Liquid, HTML and CSS to a static website so that no is database required. While I was planning to leave the corporate world, I started r…

Full article#Technical#Personal Brand

Clojure Buzzwords I am Learning

August 15, 2018 - Estimated 15 minute read

When I first started with Clojure, my mind was foggy and filled with a swarm of buzzwords. There were tools, plugins, libraries, patterns and frameworks with names that were all new to me. This is a blog post of all the buzzwords that I am learning.…

Full article#Technical#Comfort Zone#Clojure

Learning Linux

July 27, 2018 - Estimated 6 minute read

I have used Windows for over twenty years. Oh my goodness that's a long bloody time. Now I've joined the Linux world. It's thrilling. I'm loving it, learning, sharing (and as always - documenting) what I love and learn. Ubuntu's APT (Advanced Packag…

Full article#Technical#Linux

A Trilogy About the Chrome DevTools in Many Parts

July 22, 2018 - Estimated 5 minute read

Don't take your knowledge for granted. Share it. Someone could learn something new. It also helps you remember it. Keep a record of what you learn in a blog, memo or even a paperback book. Whatever you choose, jot it down and help your future self a…

Full article#Technical#Chrome DevTools

Building a Monitoring Display with a Rock64

July 12, 2018 - Estimated 8 minute read

There is a page that we want to monitor. It has a lot of valuable information on it and fits nicely on a 4K screen. A ROCK64 device will power this display. The use case is simple: when the device turns on, the user must log in automatically. A brow…

Full article#Technical#Hardware

Byte order mark

October 9, 2016 - Estimated 9 minute read

The byte order mark or BOM is an invisible Unicode magic number that can be found at the beginning of a text stream. We recently changed static HTML on a web page and all Unicode characters displayed incorrectly. This was caused by the missing byte …

Full article#Technical
40
Byte order mark

Contributing to the README

September 24, 2016 - Estimated 4 minute read

When someone new works on your repository, make sure it is easy to get setup. Imagine if we didn't have any documentation; if we all adopted the mindset of "I already know this, let others figure it out on their own." No more books. No more Wikipedi…

Full article#Communication#Relationships#Technical
38
Contributing to the README

Discovering fiddles

June 19, 2016 - Estimated 5 minute read

If you are new to fiddles, it's an online code playground that let's you quickly experiment, visualize results and share code without having to start up an IDE, editor or server of some sort. They are generally free and include features such as synt…

Full article#Technical#Productivity
26
Discovering fiddles

Some new HTML5 elements

June 18, 2016 - Estimated 4 minute read

The HTML5 specification has introduced more elements to aid us with semantic markup. I've discussed some of the design changes as well as the introduction of structural elements. Note: There are many books, articles, wikis and posts relating to thes…

Full article#Technical
25
Some new HTML5 elements

HTML5 structural semantics

June 17, 2016 - Estimated 6 minute read

In 2005 Google sampled (link since removed) over a billion documents. This highlighted popular class names, elements, attributes and other related metadata. The data surfaced many structural requirements related to 's with classes of , , , etc. As …

Full article#Technical
24
HTML5 structural semantics

Design changes in HTML5

June 16, 2016 - Estimated 5 minute read

Elements, attributes, and attribute values are semantic according to the HTML5 Specification. These definitions allow HTML processors, such as Web browsers, screen readers or search engines, to present and use documents and applications in a wide va…

Full article#Technical
23
Design changes in HTML5

Simulating mobile devices in Chrome

June 8, 2016 - Estimated 6 minute read

Edited on Friday, 27 August 2021. Discover the simulation power behind the Device Mode feature in Google Chrome. Chrome DevTools has a feature called Device Mode since Chrome 49. This feature extends some previous features by allowing you to simulat…

Full article#Technical#Chrome DevTools

The importance of Git history

May 14, 2016 - Estimated 6 minute read

Version control is like time travel for source code. If commits are monolithic and the messages suck... what exactly are you going back to? I use Git at work and in my personal playground. It gives me the confidence I need to explore options and exp…

Full article#Technical

Problems with microservices

May 13, 2016 - Estimated 4 minute read

After an interesting debate, I decided to explore some of the problems that teams may face with microservices architecture. Trying to decipher a monolithic app is a real pain. Changing it is scary. I don't always trust the test suites attached to co…

Full article#Technical
10
Problems with microservices