Looking Further Ahead

Have you ever had to mow the lawn? If so then you’re probably familiar with getting into the pattern of glancing just head of the front left or right tire and keeping it within a tolerance that ensures you can cut the most amount of grass possible. You’ll often only need to break this subconscious practise when obstacles come up such as trees, landscaping, or a perhaps a particularly tricky turn.

At first glance if you’ve ever had to combine corn in the field, it feels like it’s roughly the same activity. However, if you try this tactic you’ll quickly find you’re in for a world of hurt. The trick to operating a combine is to keep an eye on where you’re going and glancing at how the corn is being brought in as you go. If you focus too much on the current corn being brought in you’ll get too wrapped up in the each set and quickly drown in a series of micro corrections.

This applies to so many things in life. It feels natural to want to focus on what’s immediately coming up and loose focus of the planned out row ahead of you. I find myself doing this with so many things in my life and being back on the farm has helped bring it to my attention. Don’t get hung up on the immediate success or failure of what’s going on, but rather use it as a guide to drive what you’re striving for as an indicator of the overall goal.

Channels in Phoenix

The Back-Story

I’ve been writing Phoenix applications for about four months now and really enjoy it so far; however, I’ve been stuck working mostly on boring web APIs and haven’t had a chance to build anything that is more rich and interactive with a specific user application in mind. That’s all changed though as I decided to beef up on my front-end skills a bit and work on a pet project I’ve had cooking in the noodle for awhile now.

Switching Over to NeoVim

I’ve been using vim for coming up on four years now. It’s been an amazing ride so far and it’s impossible for me to imagine not using it anymore. This fear is what has kept me from exploring NeoVim until recently, and now I wish I would have looked into it perhaps a little sooner! In this post I’ll explain how I moved over to NeoVim and highlight some of the “gotchas” I’ve found so far.

The Time Between Posts

"Where is time going?"

A whirlwind of change has rocked my life since I’ve posted last, some of which has been the culprit for my lack of posts… I would look at the calendar and think to myself, “Wow, it’s been a couple weeks. I should capture some of what’s been happening.” Here I am now trying to highlight some of the major events and happenings since I last posted about five months ago. I’ll start with the highs, move into informative, then end on the low.

JSON Hyper-Schema

Last week we looked at JSON Schema and how it can be used it in describing the data of your API. In this post we’ll be looking at the JSON Hyper-schema. It is a schema built on top of the JSON Schema and describes the URLs that can be built with a given resource. Let’s look at how we can use this spec to help supplement our APIs.

Fixed League of Legends Lag

I am a closet fan of the game “League of Legends”; mostly just as a spectator of famous streamers such as Trick2G. However, my wife loves to play the game and plays in the evenings. Things went wayward for her about a month or so ago when she started having huge lag spikes and high ping that seemed to start and then never clear up. Having done network support in the past I set out to try and solve this problem…

JSON Schema for Your API

It’s pretty easy to stand up an API. Unfortunately sometimes though, this easiness is a false friend you can be paying for down the road. Once you get any amount of consumers; even if they are internal, expressing the data models your API delivers and how it is validated can be a messy chore. You may write up some fancy documents describing your API (which is good); however, this can lack a bit in the area of tooling. This is where JSON Schema can really shine.

I Have Returned

I have been absent awhile; mostly enjoying a lengthy break over Christmas followed by an incredibly busy January. I’ve collected quite a bit over the last month or so which is being drafted up into posts for the next couple of weeks. I feel ready to get back into the swing of another year and am excited to see what awaits!

No Refunds on Life Spent

After visiting my sick grandfather in the hospital I realised the time spent in life offers no refunds. Take the opportunities you have today for the things you really want to do. I have really been wanting to go back to school and this hit home hard for me. There is so much more I want to learn and do with my life and the window I have to do it in is closing every day.

Sometimes we get complacent “dancing for the man”; staying comfortably distracted by the workday. Don’t let it happen! Always challenge and audit yourself to ensure you’re spending the time you have on the investments which are important to you.

Elixir Agent - a Lightweight GenServer

If you come from Erlang and are familiar with the GenServer behaviour you may be interested in the Agent set of methods that ship with Elixir. They provide a lightweight mechanic to save and retrieve state. Here are two functionally equivalent modules, one written as a GenServer and the other with Agent.