Recent Articles

Don’t stand around with your hands in your pockets

I was reminded of this story while working with a team of engineers struggling to find their place on a new contract. They wanted to be told exactly what to do and how to do it.

OneNote Shortcuts

I must be soaring to new levels of personal growth now that I'm using OneNote as opposed to a good old text editor. Moving quickly is key to getting the most value out of this program. Here's my workflow and shortcuts.

(Book) The ONE Thing

Create an ambitious timeboxed ONE Thing goal. View this goal as a giant dominio that needs to be knocked down. Stack smaller and smaller dominos in front of it, to help knock it down.

(Book) The Wealthy Freelancer

A good practical resource for getting into freelancing. Most of the books out there on consulting and freelancing are missing the details on how to really get started in the field.

(Book) Drive: The Surprising Truth About What Motivates Us

Drive attempts to present a progressive view of motivation. The systems of reward and punishment may have worked in the past, but if we are to find lasting satisfaction in our lives, then it will be necessary to pay attention to the internal motivators of it.

Java to XSD Example

Here's the scenario. You've just built a nice fancy endpoint and you're asking other groups to consume it. Problem is your data model is complex and posting a big messy object is tedious and difficult. You could move your data model outside your app, but that still locks them to whatever language you've written.

A Timeline of My Favorite Books

I've always wanted to create a timeline of all the books I've read. I suspect if you plotted out the turning points in my life, you might find a coorliation to what I was reading at the time.

Understanding Oracle Indexes

As a tech lead I see lots of confusion around indexes. They're really not complicated, here is quick rundown.

Mount S3 to Mac

Steps to mount an S3 bucket to your personal computer.

Web Scrape Examples

Over the years, I've built a collection of small scripts that I use to crawl and fetch data for myself. These are all pretty hacky and quick, but I often find useful.

Kibana Quick Searches

I don't know what's wrong with my brain, but I struggle with the formatting for Kibana searches. Here's are some quick examples.

Aquire and Inspect Java Thread Dumps

A thread dump is a useful way of peaking into a live application. It's a starting point for hunting down a large number of issues include stuck threads and deadlocks.

Aquire and Inspect Java Memory Dumps

Here are some straighforward steps for aquiring a memory dump and simple tools for inspecting. This method works well best because the tools needed are packaged right with the JDK. Great if you find yourself with memory issues or stuck threads on a remote server.

Configure MySql to listen on all ports with Homebrew

I use a piece of software at work that only seems to work on Windows. It interacts with a database that I also connect to on my Mac. By default Homebrew appears to launch mysql with it listening only on localhost. Long story short it appears I set it start automatically start by configuring Launch Agent.

Java Certs - PKIX path building failed

My current contract has tight network restrictions. Users need to install a certificate on their machine in order to access the internet. While developing, it appeared that Java doesn't use the OS keystore

SVN Clean Local Copy

If you're still working in SVN you're life is busy enough as it is. Sometimes I need to be sure my local copy of the code, looks just like the remote copy.

Run a balanced application in a Docker Swarm

Here's a quick and dirty guide to getting a Docker Swarm cluster up and running. Let's create 3 virtual machines our on local machine to help illustrate this.

Gradle Introduction Notes

Here's my notes from this excellent introduction to Gradle. Most of the project I work with use maven, but I'm seeing gradle more and more. These notes help me quickly get my brain back up to speed.

Understanding SQL Group By, Like a Boss...

The group by clause allows you to return one row for a column that might have duplicates. For instance if you groups all the member_ids in a post table together you could perfom some kind of calculation on them. How many there are, tally up a column for them, etc.

VirtualBox Oracle Scratchpad

Getting shared folders and all that jazz is pretty important if you're going to be using virtualbox reguarly. These are my EXTREMLY rough notes on this so far. Expect this to be changed and cleaned up.

Video Watching Shortcuts

I like to watch how to videos at double speed. I loose concentration when things move too slowly. Here's some commands I use when watching videos.

Things I can never remember

Here's a collection of snippet and one liners that I can never seem to remember.

Open ports to docker container

Let's say you create a container and want to run something like a Spring Boot app on it. The container gets a private ip accessible to the virtual machine running it, your desktop or laptop only knows the address of that virtual machine and nothing in it.

Java 8 Runnable Examples

Here's a few examples of the new features in Java. I'm the type of the developer who really benefits from seeing this sort of stuff run in an IDE. This list is far from complete, but I think it should help you get started.

Swagger / SpringFox Walkthrough

Swagger is an API framework that allows for interactive documentation, client SDK generation and discoverability. SpringFox is a SpringBoot application that sits on top of your api and allows you to explore it from your web browser.

Spring Cloud at Netflix Notes

These are notes I'm leaving for myself after making my way through a demo project provided by Netflix at SpringOne2GX. At the time of this writing the project is about a year old, but covers the groundwork for a reliable distrbuted MicroService application architecture.

Building Microservices Oreilly - Summary and Notes - Chapters 1 - 4

Here's a copy of my loose notes from this great introduction to Microservices. It's a really novel way of looking at an old problem. It's also increasily relevant as I am becoming responsible for larger and larger systems. The world has come a loooooong way since I started working with Apache in 1999.

Git tag quickstart

Tags are basically a way to... well, tag a point in time on a git branch. Don't just leave a comment in the git log, tag it!

Kubernetes walkthrough notes

These are my notes from walking through the Kubernetes introduction. I recomend starting with the video overview then running through the tutorial.

Docker QuickStart (Mac Tutorial)

Docker is an application that allows you to package up an OS and deploy it to a machine. You could put your entire application on it along with all the files required to run it.

(Book) Good to Great

Leaders who think long term, get people who care about a concept to join their company, then think extremly hard about a solution. They then start pushing everybody in the same direction of the solution over a long period of time.

Head First Java - Sockets and Threading Chapter

This is a great chapter for a quick overview of the basic concepts of sockets and threading. It would be nice if it was just a plain threading chapter, but the socket example helps explain the concept of the blocking state really well.

Brain teaser interview questions

Here's a quick list of common brain teaser questions that come up on technical interviews. They're fun exercises, and usually that have on AHA moment that gives away the whole trick. The real question is how can you train your brain to be flexible enough to recognize those tricks.

Trivia style interview questions

Technical interviews have quite a bit of, for lack of a better term (or maybe not), trivia type knowledge. Questsion that test your depth of understanding of common concepts. Here's a quick overview of the major themes you'll be asked.

Design pattern notes for technical interviews

Here's my expanding lists of notes for Design Patterns, I'm pretty familiar with them so this may be on the more advanced side of things.

Algorithm Notes

Here's a collection of my notes while attempting to implement some of these solutions myself. I've noted where I was tripped up along the way, and hopefully using these tips, I'll be better prepared to recognize the patters that work.

Java passing by value and autoboxing

Some important things to keep in my when passing around objects in Java. Java is pass by value which really means "pass by a copy of something". However this confuses people because you're not passing a copy of an object in java, you're passing a copy of a pointer to an object.

Cracking the Coding Interview Chapter 04 Java Solutions - Trees and Graphs

These days I'm seeing graph problems pop up more and more, maybe that's just the result of getting into tougher technical interviews. Still, there are the types of questions that separate the men from the boys. Nail these and you're well on your way to that dream job.

Guide to converting recursive functions to iterative and vice versa

This guide will give you tips for converting iterative solutions to recursive solutions. Find out how to spot when a recursive solution may be beneficial.

Cracking the Coding Interview Chapter 2 Java Solutions - Link Lists

These examples are dealing with Linked Lists. Remember to ask if singly or doubly linked, if you have a pointer to previous, if not then keep track of it.

Understanding generics and how collections use them

Generics can be confusing sometimes, a question most people don't ask themselves is why should I use them when polymophism should do just fine. Here's a quick guide with code samples to illustrate the difference.

Understanding Base Numbering System

This guide will show you how the base numbering system works and how to convert between decimal, binary, and base values. Understanding this is the key to some really difficult questions.

Programming Interviews Exposed Java Solutions Chapter 05 - Trees Graphs

Chapter 5 of this book makes it's way quickly into binary search trees and graphs, a great general overview of how they work.

Programming Interviews Exposed Java Solutions Chapter 04 - Linked Lists

This is probably my favorite book in regards to coding interviews. If you're having trouble with Cracking the Coding interview, then this a MUCH better place to start. The explainations are top notch and they actually guide you through the thought process of solving these questions. Highly recommend.

Technical Interview Quick Study

This page is (and probably always will be) a work in progress. There's just so damn much to remember for a techincal interview. Hopefully looking at this quick overview will help quickly bring my brain back up to speed with problems I've solved in the past.

Cracking the Coding Interview Chapter 1 Java Soltuions - Arrays and Strings

My personal solutions to the infamous "Cracking the Coding Interview" questions. These are my interpretations of the solutions, and to be honest, you won't get much out of them unless you buy the book yourself and try solving them yourself.

Life with a singular focus

We're all born with a finite amount of energy and how we distribute that determines our success

(Book) War of Art - Summary

Instilling a sense of urgency. Putting into words what inspiration is, where it comes from and how to keep it flowing through the use of good work habits.

(Book) Quite - Summary and Notes

These are my personal notes so your milage may vary. I thought it was a great read, it helped convince me that I need to find work better suited to my temperment.

Robot Maze interview question and solution

When answering this question I think it's important to remeber to take a step back and run the solution through your head before jumping into code. Something I'm not very good at.

Tips for using Git on large teams

Here's some notes I like to refer back to when using git on a large project. In this case there were many branches simultaniouysly under development and all being pushed into master after testing. Checking bad code into master could cause big issues for other developers so we had to be careful.

SpriteKit sound player singleton for iOS8 and iOS9.

While developing Heavy Metal Samurai, I found there was a surprising lack of information in regards to effectibly playing sounds. I went through about three different solutions until finally ending up with this code. Not only does it work well for rapidly playing sounds, it also is easy to use with NSUserDefaults for a mute option.

Digging an SSH tunnel through a NAT box

Amazon's new private clouds are a great and secure way to host services, but can be difficult to develop on when you need access to ports inside the network.

Setting up an Amazon Ec2 Mail Server

This is a guide outlines how I setup a low cost and flexible mail server on a default amazon EC2 instance.

Quick and dirty Backups with rsync and the mail command

This easy script allows us to backup large directories from a remote machine using crontab and rysnc. I use it to backup my EC2 instances to my local network at home. I love rsync because it conserves bandwidth by only downloading recently added or changes files.

Setup A New Project with Maven

I always find myself searching for these simple commands. You could do this through your IDE as well, but that often ends up in frustration. I usually just start at the command line

Cron Notes

Here's a quick reference I've been using for years. It's easy to forget the formatting on conrtabs. The can cause serious trouble when misconfigured.