Walker Randolph Smith

Technology enthusiast, proud Eagle Scout, and software craftsman, I have a passion for the web and software development. I strive to adhere to Agile and SOLID principles while always maintaining a constant pursuit of improvement. My interests include UI/UX engineering, learning, and test driven development.

My Newsletter


Subscribe to my newsletter for updates on the evolution of the JavaScript toolchain. Currently updates are only available via RSS.

Tags


Themes


Show Line Numbers:

Github

Previous Next

Bitbucket

Previous Next

Js Fiddles

Previous Next

Badges


Twitter


Walker Randolph Smith

javascript

Array

Sets, lists, and collections are structures I deal with almost everyday when programming. ES5 brought cool features like map and reduce, but prior to ES2015 I often used libraries like underscore and lodash to help me operate on arrays. These libraries and another, Rambda, are still on my radar since they have optimized many of these operations, however there are a couple common operations I will cover.

Walker Randolph Smith Walker Randolph Smith

Electron Native Apps

Electron allows for creating cross platform, native applications that run on the Node.js runtime. Today, native applications can be created with a consistent set of tools including Javascript, HTML, and CSS. Electron, developed by Github, was orginally known as Atom Shell as it powered the homegrown text editor created at Github, Atom. Now well known applications such as Slack, Atom, Visual Studio Code, and more have been developed with Electron. I am going to cover creating a minimal Electron application.

Walker Randolph Smith Walker Randolph Smith

Knockout and Durandal

Single page applications are web applications contained on a single HTML file that are dynamically updated using client side JavaScript in response to user interactions. This article will discuss creating a SPA using Durandal and Knockout. This technology stack leverages a variation on the traditional Model View Controller pattern called Model-View-View Model, MVVM, which a design pattern for building user interfaces. The pattern divides the user interface into three major components. The Models represent the application’s stored data. Ajax can be used with server-side code to read and write the stored model data. The View-Models are JavaScript objects that represent a subset of data and operations on that data required by a specific user interface to render. The Views are UI components that graphically expose the View-Model data and operations. Durandal is one of many JavaScript frameworks that leverage this design pattern. One emerging giant is Angular and yesterday it was announced, here, on Twitter that Durandal and Angular will converge!

Walker Randolph Smith Walker Randolph Smith

Add Bitbucket Aside to Octopress

Adding public repositories hosted on Bitbucket to your blog is a great idea to showcase your projects. Checking out how the Github aside works will help, as they are similar. However, unlike Github, repository names on Bitbucket can have white space, but the URL to a repository is stripped of white space and every letter is converted to lowercase.

Walker Randolph Smith Walker Randolph Smith

Promises

Asynchronous programming in Javascript involves a control flow that is not sequential like what is expected from most programming languages. This non-sequence nature is due to the result of a function not being available immediately. In this scenario the program continues execution despite the result of the first function not returning and the subsequent operations on that result not occurring. Asynchronous code may be a result of physical limitations causing the reults to not be instant or guaranteed like file IO and network requests. Asynchronous programming can be a challenging task and it has evolved quite a bit in Javascript since I began programming. In a few short years I have solved this problem like many other Javascript developers: using callbacks, promises, and now even async and await. Each of these approaches changes the structure of the asynchronous code as well as the control flow. For many people seeing the differences between these techniques will actually feel like a stroll down memory lane.

Walker Randolph Smith Walker Randolph Smith

VersionOne JavaScript SDK

Recently the VersionOne JavaScript SDK received some love and got a major version release. The SDK allows communication with a VersionOne instance by exposing some of the well documented apis including query.v1, rest-1.v1, and metav1. The SDK ultimately makes HTTP requests to a specified VersionOne instance. In this scenario I will not consider CORS and make all the requests from a server. This article assumes prior knowledge around Node.js and javascript. I will cover how to set up a minimal node application that uses an express server and the SDK to make queries to VersionOne. You can follow along with this git repo sample-v1sdk-app.

Walker Randolph Smith Walker Randolph Smith