NIST Password Requirements

June 18, 2019
Developing sound policies is an extremely important part of keeping your systems and users secure. Unless you yourself are a security researcher, or building…

Private SSH Tunnel Service

April 18, 2019
SSH tunnels are used to expose your local development machine to the internet. They’re commonly used in web development for: demoing websites before deploying…

Universal Multi-Page React App

November 22, 2017
If you’re using one of the modern client-side javascript frameworks, I’m sure you’ve heard of server-side rendering. That is, sending the initial markup fully…

Creating a Conference System in Twilio

May 05, 2017
Twilio’s documentation is very useful in showing some of the possible applications of their telephony system. For example, they have a guide that walks you…

Improving an RSS Twitter Bot

April 01, 2017
Shortly after creating the RSS twitter bot to tweet out an unduplicated list of published items, I realized a few issues with the approach: RSS feeds aren’t…

Building an RSS Twitter Bot

January 31, 2017
Twitter is a great way to keep abreast of breaking news stories. Reputable news outlets, such as the The Washington Post and the The New York Times, maintain…

Web Authentication With AWS Lambda and API Gateway

November 29, 2016
AWS makes building APIs with serverless architecture easy. Using API Gateway and Lambda, you can define functions that interact with databases, make web…

Readable, Writable, and Transform Streams in Node.js

January 08, 2015
Streams in Node.js are very powerful and useful constructs. They are also one of the more difficult concepts in Node to wrap your head around. Over the past few…

Setting up Nginx Reverse Proxy for Node.JS on Fedora

November 21, 2014
One of Nginx’s popular uses is as a reverse proxy for several different Node.js servers. A reverse proxy makes it easy to point to each separate app without…

Understanding Javascript Callbacks

September 16, 2014
The first step in understanding the concept of Javascript callbacks is to realize that functions are really objects. The thing that makes them special is that…

Infinite Scrolling in Android

June 22, 2014
Infinite scrolling has become very popular in recent years. It’s become especially popular on mobile devices for the simple fact that it allows you to fetch new…

Data Join Techniques in JavaScript

April 25, 2014
When I decided to cut over my festival guide to a standalone site, I needed to figure out a way to do the data operations on the client’s browser that I was…

Text Deduplication in SQL

February 25, 2014
Data deduplication is essential when importing similar data from different sources. Different providers store data differently, and several variations (both…

Mapping the Snapchat Data Leak

January 09, 2014
I’ve been following the Snapchat data leak pretty closely the past few weeks, from the announced weakness to the actual leak of the phone numbers. What I found…

Introducing Tweet Zone

December 18, 2013
About a month ago a Washington Capitals blog called Japers Rink tweeted this out: How is it that we’re in November 2013 and there isn’t a Twitter account that…

Parsing JSON Array With Missing Elements

November 23, 2013
A project I’m working on requires me to parse JSON arrays from strings that I do not have control over. One of arrays I see frequently has empty elements at…

Hashing With SQL Server CLR

November 10, 2013
I have been looking at using hashes in a computed column to determine equality among rows, rather than compare each column. While running some tests, I…

Moving Files in Android

October 10, 2013
Android users have the luxury of being able to access the storage on their devices. Because of this, many prefer to maintain their own directory structure and…

Moving a File In The Android MediaStore

September 25, 2013
When you move or copy a media file in Android, any app that access it via the MediaStore will not automatically be updated. In one of my previous articles I…

Pagination Syntax in SQL Server 2012

September 13, 2013
When we started upgrading our SQL Server 2008 instances to 2012, I went back and reviewed the new development features that were added. There were many that I…

The Case Against 'OR' in MS SQL Server

September 05, 2013
When writing SQL queries, I try to use logic that is intuitive to myself and to someone else who may read my code in the future. While this is good practice, it…

Queries in SELECT statements vs APPLY in MS SQL Server

May 07, 2013
There are many times working with SQL when you want to select just one particular row from a table which has many that satisfy a join condition. This could be…

Using The Android DownloadManager

February 18, 2013
Since Gingerbread, Android has included support for handling long-running downloads via the DownloadManager. Using previous versions apps had to manually handle…

Querying And Removing Media From The Android MediaStore

January 19, 2013
Android provides a way to register different type of media, such as audio, video, and images, for consumption by any app. This is convenient if your app is, say…

Attaching Lasers To A Syma S107G RC Helicopter

January 16, 2013
I received the Syma 107G R/C Helicopter as a present recently. After a few days of flying it around my apartment giddily (and tormenting the person who got it…