Blog

Go: Marshal and Unmarshal JSON with time and URL data

Jun 15, 2016  
Go has a robust JSON library for consuming and outputting JSON. The standard json.Marshal() and json.Unmarshal() functions do a great job of aligning primitive types and converting them from Go into JSON, and vise versa. Beyond the basic types you will have to create custom marshaling methods on your types and write some logic to handle the conversion process. We will go over writing these custom methods for types that contain time and URL data.
Continue Reading

Peak Design Everyday Messenger Review

Mar 14, 2016  
The most frustrating part of the Everyday Messenger is that it is damn near perfect; not quite, but almost. The unique locking latch, a thoughtful strap, and quality construction make this bag a great everyday carry. The Everyday Messenger is intended to be a photographers bag; with the main compartment set to house a camera and extra lenses. The bag is intended for carrying camera gear, but remove the padded dividers and it works for a laptop and “office” stuff.
Continue Reading

Quick and easy web server for local development

Feb 24, 2016  
Sometimes I want a quick way to build some web pages. A way that does not require installing a lot of servers locally, but is still better than opening the file directly in my web browser. When I start a new web project I break it up into small steps. These steps form a natural set of milestones, and helps me to reason about the project as a whole. Focusing on each step helps me make progress on the entire project.
Continue Reading

Initializing channels in Go

Oct 24, 2015  
With most variables in Go we can declared them in a couple of different ways. Using the var keyword, initialize them as we declare them with the := operator; or using the new or make keywords. Most variables can be declared with var, which only reserves storage for a named variable. If no assignment accompanies the statement, the variable is set to it’s zero value. Using var to declare a channel crates a nil channel.
Continue Reading

fmt.Scanf Introduction

Oct 4, 2015  
From the fmt package; the Scanf function is used to read input from stdin. When you run this snippet of code the main() function will wait for user input a string, a number, and a second string. Which it puts into variables, and then uses to print some information. Scanf woul be used when you want to write a command line program that requires user input during the running process.
Continue Reading

Firefox to integrate Pocket

Jun 3, 2015  
I was shocked when I saw news of Mozilla’s Firefox native integration with Pocket; the popular read-it-later bookmarking service. This is the first time I can remember when Mozilla has integrated a commercial third-party service. It feels a little odd. I understand why they might have done this. My guess is that Pocket is another revenue stream for Mozilla. I can appreciate the need for money; it keeps the employees happy, and the Firefox updates rolling out in a timely fashion.
Continue Reading

Building Go projects with gb

May 3, 2015  
gb is a new build tool for Go created by Dave Cheney. It address the problem of reproducible builds. Building the same functional binary anywhere at any time is a problem of dependency management. Of knowing exactly which library version to use, and having it at hand. gb is a radical tool compared to current dependency solutions, which work with the existing Go toolchain and idioms. gb takes a different approach, it replaces not only dependency management tools, but the Go build tools themselves.
Continue Reading

Understanding Go Dependency Management

Mar 5, 2015  
lego blocks, dependency management
Image courtesy of kreezzalee

Right now there is a discussion thread on the golang-dev mailing list about formalizing how Go manages dependencies. The Go Team is putting forward that Go use vendoring to manage dependencies, and asked the community to formalize a configuration format that tools can use to manage vendored code.


Continue Reading

The iOS keyboard is terrible

Jan 26, 2015  
Can you tell which one of these keyboards will input uppercase or lowercase letters?

The iPhone, and iOS, brought about a revolution in mobile network connected pocket computers. It did a lot of things right, but it did one thing terribly wrong. When using the keyboard the letter on the key does not show the true character that will be input. The letters on the keyboard are always capitalized, even when pressing the key will input a lowercase letter.

It has been a very long time since I’ve used an iPhone day to day, but this still annoys me. Simply put the lack of accurately displaying the key to be input, capital or lowercase, is a disgrace. In part because of the years that iOS devices have been around, and the years that this features has been available on many Android phone. Though most importantly because it was Steve Jobs himself who cajoled his competitors and their fixed, never changing, keyboards.


Continue Reading

Galaxy Tab Pro 8.4 Review

Dec 29, 2014  
Beautiful Tab Pro 8.4 screen.

Reading on mobile devices is something I have done for a long time. I have read novels on some low quality screens; such as the Palm III, with it’s spinach green tint. Recently I’ve been looking at trading up from my Kindle Keyboard to a device with a better reading experience. I wanted something that was comfortable while reading for long periods of time, had a better screen, and access to more books and articles than the Kindle.

In the Samsung Galaxy Tab Pro 8.4 I have found a great device that give me joy to use. It is comfortable to hold, has a super sharp screen, and access to everything I’d want to read.


Continue Reading