diff options
Diffstat (limited to 'www/blog/2020-01-13/index.html')
-rw-r--r-- | www/blog/2020-01-13/index.html | 81 |
1 files changed, 0 insertions, 81 deletions
diff --git a/www/blog/2020-01-13/index.html b/www/blog/2020-01-13/index.html deleted file mode 100644 index 630a353..0000000 --- a/www/blog/2020-01-13/index.html +++ /dev/null @@ -1,81 +0,0 @@ -<!DOCTYPE html> -<html lang="en"> -<head> - <meta charset="utf-8"> - <meta name="generator" - content="HTML Tidy for HTML5 for Linux version 5.7.45"> - <title>senders.io - Blog</title> - <link rel='stylesheet' - type='text/css' - href='/index.css'> - <meta name="viewport" - content="width=device-width, initial-scale=1"> -</head> -<body> - <div id='header'> - <a class='title' - href='/'>senders.io</a> - <nav> - <a href="/resume">Resume</a> <a href="/blog">Blog</a> <a href= - "https://github.com/s3nd3r5">Github</a> - </nav> - </div> - <div id='body'> - <article> - <h2>remember/recall - what could've been a command line tool</h2> - <p>During a meeting at work when I realized I often forget useful - commands. So I had the bright idea to create a command line tool that - would basically append a file with the command you wanted to remember - that you could search over later if you wanted to recall a certain - command. I figured I could it could just be a simple bash script that - recalls your bash-history and appends it to a file, all things that are - incredibly easy to do... or so I thought.</p> - <h3>Look before you leap</h3> - <p>This article is a reminder to myself to test the core functionality - first, before decorating your program/script with all those bells and - whistles. While I did learn a lot in the process it is always a good to - check the basics first.</p> - <h3>What went right</h3> - <p>I actually ended up learning a lot during the development of the - (never finished) tool. I had never used <code>getopts</code> inside a - script before, which turned out to be extremely intuitive. That was all - that went right...</p> - <h3>What went wrong</h3> - <p>Literally, everything else that could've went wrong did. The - "project" was a single bash script roughly 160 lines long - before I found out it wouldn't work. It was a series of flags that - enabled actions that called functions, some of which ended the script - either successfully or not. It wasn't necessarily a mess to read (I - tried to make it that every function ended up in an exit so I knew if I - entered I would need to assume it terminated) but it was hard to follow - when writing. I tried to allow it so you could default an action to make - the CLI intuitive which lead to a messy set of if/elses and switch - cases.</p> - <h4>You can't access un-committed bash history</h4> - <p>History command in a bash shell commits the history at the end of the - session. This makes sense once you know this, there are a lot of reasons - saving the commands to file after every execution is probably not the - best idea. However, it can be enabled with a flag when you enable a shell - session. But I didn't want to build a tool that required me to - remember I had to add something to my bash_profile before it would work. - I wanted something I could just copy onto a new machine and have access - to its functionality.</p> - <h3>Lesson learned</h3> - <p>While developing a tool to help me remember things, I learned - something I cannot forget: Test the core, simplest functionality first. - Before you do anything validate what you're trying to do will work. - Because after building all of these fancy bells and whistles, if it - can't do the basics, there is no point.</p> - </article> - <div id='footer'> - <i>Updated and finally posted February 16, 2020</i> - </div> - <div id='copyright'> - © 2023 senders dot io - <a rel="license external noopener noreferrer" - target="_blank" - href="https://creativecommons.org/licenses/by-sa/4.0/">CC BY-SA - 4.0</a> unless otherwise noted. - </div> - </div> -</body> -</html> |