summaryrefslogtreecommitdiff
path: root/www/blog/2020-01-13/index.html
diff options
context:
space:
mode:
authorStephen Enders <smenders@gmail.com>2020-02-16 23:12:16 -0500
committerStephen Enders <smenders@gmail.com>2020-02-16 23:12:16 -0500
commit5182791ac13349b2b22d665fa42138f5a47dc543 (patch)
tree1a2bca92bcdbaf46b52f26e07fa5a11a6aa7a335 /www/blog/2020-01-13/index.html
parentefbb8cbe0b459caec2bc749f7bc688c92959e571 (diff)
Write entry for recall/remember tool
Diffstat (limited to 'www/blog/2020-01-13/index.html')
-rw-r--r--www/blog/2020-01-13/index.html70
1 files changed, 70 insertions, 0 deletions
diff --git a/www/blog/2020-01-13/index.html b/www/blog/2020-01-13/index.html
new file mode 100644
index 0000000..34a0468
--- /dev/null
+++ b/www/blog/2020-01-13/index.html
@@ -0,0 +1,70 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta name="generator" content="HTML Tidy for HTML5 for Linux version 5.6.0">
+ <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&#39;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>
+ <h2>Look before you leap</h2>
+ <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>
+ <h2>What went right</h2>
+ <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>
+ <h2>What went wrong</h2>
+ <p>Literally, everything else that could&#39;ve went wrong did. The
+ &quot;project&quot; was a single bash script roughly 160 lines long
+ before I found out it wouldn&#39;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&#39;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>
+ <h3>You can&#39;t access un-committed bash history</h3>
+ <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&#39;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>
+ <h2>Lesson learned</h2>
+ <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&#39;re trying to do will work.
+ Because after building all of these fancy bells and whistles, if it
+ can&#39;t do the basics, there is no point.</p>
+ </article>
+ <div id='footer'>
+ Note: This entry ended up getting rewritten and posted on 2020-02-17
+ instead. <i>January 17, 2020</i>
+ </div>
+ </div>
+</body>
+</html>