DISCOVERY

February 22nd, 2019

Exploring Bash Scripting

Bash

Batch

Command Line Scripting

Back in the summer I wrote an article about Batch scripting on Windows. In today's article, I'm looking at Bash scripting. I've used Bash quite a bit recently. At work I've used Bash scripts to automate the conversion of Subversion repositories to Git. In my personal work I've used Bash scripts to assist setting up AWS infrastructure. The rest of this article explores basic Bash features and how they compare to Batch.

What is a Bash Script?

DISCOVERY

March 15th, 2019

Exploring PowerShell Scripting

PowerShell

Bash

+2 More

Over the summer I wrote an article about Batch scripting and just a few weeks ago wrote a follow up on Bash scripting. Today I'm exploring PowerShell scripting on Windows. I've used PowerShell at work recently for automating the deployment of .NET applications. The rest of this article looks at basic features of PowerShell and how it compares to Bash and Batch.

What is a PowerShell Script?

DISCOVERY

April 28th, 2019

Docker Part III: Containerizing an Application

Docker

Bash

+4 More

In my previous two Docker articles, I explored container environment basics and created a playground to run Docker on AWS. In this article, I'm creating a containerized application that is publicly accessible from the internet.

Containerizing a Node.js Application

DISCOVERY

August 18th, 2019

Revisiting Type Equality

Java

JavaScript

+15 More

In this article I'm revisiting the concept of type equality. Type equality is a topic that software engineers learn early on in their careers. Similar to any other profession, it's beneficial to go back to the basics for practice. Professional basketball players practice layups before each game. Professional programmers should work at the basics as well. I spent this past week re-learning type equality in 13 different languages. In the process I've reaffirmed my knowledge and gained new insights. The rest of this article discusses my findings.

The Different Forms of Type Equality

RETROSPECTIVE

September 5th, 2019

AWS Lambda Function for MySQL RDS Backups Part II: Building the Function

AWS Lambda

AWS RDS

+11 More

In my previous article I discussed my existing AWS infrastructure and the additional resources needed to automate backups for a RDS MySQL instance using a lambda function. In this article I'll create those additional resources and further explain my design decisions. Finally, I'll test the lambda function and show the backup file in my S3 bucket.

Building the Additional Infrastructure

DISCOVERY

September 15th, 2019

Introduction to Elasticsearch

Elasticsearch

Kibana

+7 More

Over the past few months I've read a book about the ELK stack. ELK stands for Elasticsearch, Logstash, and Kibana. Together these three technologies provide the ability to search, stream, and visualize data. In this article I discuss Elasticsearch, which is the core technology of ELK Stack. First I'll define Elasticsearch and provide details about what its used for. Second I'll create AWS infrastructure for Elasticsearch using Amazon Elasticsearch Service. Third and finally I'll populate Elasticsearch with data and show some basic queries.

What is Elasticsearch?

DISCOVERY

September 30th, 2019

Integrated Queries with LINQ and SQL Server

C#

SQL Server

+4 More

My previous article explored LINQ, a module that brings query syntax to C#. All the examples in that article queried local data structures. While using LINQ on local data is valuable in itself, LINQ can do much more. LINQ really shines when used to query remote data sources. Queries on remote data sources such as relational databases are known as integrated queries. In this article, I explore integrated queries with a SQL Server database. First I create the SQL Server database instance with Docker and then query it using LINQ.

SQL Server with Docker

DISCOVERY

October 18th, 2019

Writing Elasticsearch Analyzers

Elasticsearch

ELK Stack

+4 More

One of the biggest strengths of Elasticsearch is text searching. Elasticsearch holds strings for text searching in text data types. A document can contain one or more fields of type text.

When strings are placed into a field of type text they are processed by an analyzer. Elasticsearch analyzers can be viewed as a pipeline that takes text as an input, breaks it into terms, and returns the terms as output1. These terms are placed in an inverted index which makes an index searchable.

DISCOVERY

July 31st, 2018

Exploring Batch Scripting

Batch

Command Line Scripting

Recently I worked on a project which required some basic command line scripting. One of the VMs I worked on was a Windows box, and the scripts consisted of Batch files. Although I'd seen a few Batch scripts before in my short software development career (~2.3 years), I never actually got a chance to write one myself. I figured this was the perfect opportunity to take a look at the basics of Batch scripting. With some knowledge of how to write a Batch script, I'll be capable of comparing Batch to scripts in PowerShell and Bash.

Batch scripts are pieces of code written in a command line interface (shell) on the Windows operating system. For someone new to programming like myself, I always thought of Batch as the precursor to PowerShell. This actually forms a pretty good one sentence comparison between Batch and PowerShell. Although you will often hear developers advocating the switch from Batch to PowerShell, Batch scripting is far from extinct1.