hello.js

var please = require('share');
console.log('thank you');

Monday, 8 October, 2018 UTC

Fake or Mock an API with JSON Server

Fake or Mock an API with JSON Server

JSON Server is an easy and quick-to-set-up module that you can use to fake or mock an API. You can find the basics in the documentation, and many articles regurgitate the same info. In this post, though, I intend to cover a few of the more complex things ... more


Tuesday, 2 October, 2018 UTC

Getting Started with WebSockets

Getting Started with WebSockets

WebSockets are a useful tool that allow for two-way communication between a web server and a browser. In this post, I am going to introduce the basics of WebSockets by making a (very) simple chat application using Express, HTML, and vanilla JavaScript. ... more


Monday, 1 October, 2018 UTC

Compressing 3D Model Files with Draco

Compressing 3D Model Files with Draco

Historically used for CAD and video games, 3D computer models are working their way into the mainstream. This is, in part, due to the rise in popularity of things like augmented reality and 3D printing. My current project uses 3D model data, and my team ... more


Thursday, 20 September, 2018 UTC

Reactive Programming: A Timed Popup Component with RxJS

Reactive Programming: A Timed Popup Component with RxJS

Reactive programming is all about streams. It involves combining streams, filtering streams, and transforming streams. In reactive programming, the application does not need to pull for data, but it is notified whenever a new event occurs. A few months ... more


Tuesday, 18 September, 2018 UTC

Building a Fake API for Testing & Development

Building a Fake API for Testing & Development

Nearly all applications developed today will integrate with an external service of some kind (HTTP, Bluetooth, etc.). These integrations can pose problems for automated testing, exploratory testing, and even demonstrating functionality to a stakeholder. ... more


Thursday, 13 September, 2018 UTC

Creating a Drag-and-Drop File Uploader with React & TypeScript

Creating a Drag-and-Drop File Uploader with React & TypeScript

A while ago, I was working on a project based off the Atomic SPA Starter Kit, which uses TypeScript, React, and GraphQL. One of the features we needed to build was a file upload component that supported dragging and dropping a file from a separate window ... more


Monday, 10 September, 2018 UTC

Correctly Managing Concurrency in JavaScript

Correctly Managing Concurrency in JavaScript

More times than I can count, I’ve found myself needing better concurrency primitives in JavaScript (or TypeScript) applications. Almost anything you might need is possible using the Promise API, but promises are complex, and there are many subtleties ... more


Wednesday, 5 September, 2018 UTC

Four Hurdles when Prototyping with Material-UI for React

Four Hurdles when Prototyping with Material-UI for React

Google created the Material Design design language to be used across devices. If you’re using Material Design with React, I’d recommend Material-UI for React to get the ball rolling. It’s a library of components or pre-styled elements (similar to the ... more


Thursday, 30 August, 2018 UTC

Intro to Swagger – A Structured Approach to Creating an API

Intro to Swagger – A Structured Approach to Creating an API

Creating an API can be difficult when starting from scratch. And working with a team on determining the structure and testing an API can further complicate the process. Swagger can help this process move more smoothly. In case you’re not familiar with ... more


Tuesday, 28 August, 2018 UTC

Creating a Custom Gboard Sticker Pack – A Guide for Android Newbies

Creating a Custom Gboard Sticker Pack – A Guide for Android Newbies

Recently, Google started allowing developers to create custom sticker packs for Gboard on Android. In case you’ve never heard of Gboard, it’s Google’s latest virtual keyboard. Available on both iOS and Android, Gboard is an all-in-one keyboard that includes ... more


Friday, 24 August, 2018 UTC

Finding Records that Don’t Exist in PostgreSQL

Finding Records that Don’t Exist in PostgreSQL

I was recently tasked with writing a bit of code to find delivery route stops where nothing has to be unloaded. This code is intended to prevent a delivery driver from stopping at a store when there’s nothing in the truck for that customer that day. ... more


Monday, 20 August, 2018 UTC

Resolving Error: “Objects are not valid as a React child”

Resolving Error: “Objects are not valid as a React child”

When building a React component, I ran into this error: Objects are not valid as a React child (found: object with keys... Invariant Violation: Objects are not valid as a React child (found: object ...). If you meant to render a collection of children, ... more


Tuesday, 14 August, 2018 UTC

Simulate Network Outages in Your App with Little Snitch

Simulate Network Outages in Your App with Little Snitch

Modern development tools are super-convenient. XCode’s more recent builds let you debug an iOS app over WiFi, so you don’t have to succumb to the indignity of plugging in a Lightning cable (so 2017). React Native’s tooling goes a step farther, giving ... more


Sunday, 12 August, 2018 UTC

Beyond Coding Bootcamp, Part 3 – Learning to Think Like a Programmer

Beyond Coding Bootcamp, Part 3 – Learning to Think Like a Programmer

Of all the computer science classes I took in college, there were three that I’d recommend, without reservation, to someone who wants to do my job. Each taught me something that relates to programming as an activity and a way of thinking . There’s nothing ... more


Tuesday, 7 August, 2018 UTC

Managing Data Loaders in Node.js with Shared State

Managing Data Loaders in Node.js with Shared State

When developing software, it’s always tough to work with caching. While my team appreciates the efficiencies that Data Loader can provide for applications, we still struggle with the same problems that always come up when caching queries, mainly invalidating ... more


Monday, 6 August, 2018 UTC

Beyond Coding Bootcamp, Part 2 – Understanding Algorithms

Beyond Coding Bootcamp, Part 2 – Understanding Algorithms

If you’re going to be a developer, you need to understand algorithms. At its most basic definition, an algorithm is just a program. “print(“Hello, World!”)” is an algorithm, albeit a very boring one. As a software developer, your job boils down to reading ... more


Friday, 27 July, 2018 UTC

An Intro to React Navigation for React Native

An Intro to React Navigation for React Native

When you first sit down to write a React Native app, you’ll find that after making your first screen, you don’t have an easy way to navigate to another. React Native doesn’t have that functionality built in, but in this post, I’ll outline how to use ... more


Wednesday, 25 July, 2018 UTC

Understanding the Apollo Default Resolver

Understanding the Apollo Default Resolver

According to documentation for Apollo’s GraphQL-tools: You don’t need to specify resolvers for every type in your schema. If you don’t specify a resolver, GraphQL.js falls back to a default one… The documentation goes on to state that the default resolver ... more


Thursday, 19 July, 2018 UTC

Adding Integration Tests to Gradle

Adding Integration Tests to Gradle

It’s well understood that unit tests alone may not be sufficient to release new code with confidence. Integration/functional tests are used to automate testing for workflow regressions. As part of setting up a new Java REST API server, I wanted to embed ... more


Tuesday, 10 July, 2018 UTC

IdentityServer Authentication with an MVC Client & Unauthorized Loops

IdentityServer Authentication with an MVC Client & Unauthorized Loops

I’ve learned a lot about authentication this past month. My team has been working on migrating an application from using Forms Auth to IdentityServer single sign-on. Our goal is to provide a centralized authentication for all parts of the system. This ... more


Wednesday, 4 July, 2018 UTC

Migrating an Ejected Create React App to TypeScript

Migrating an Ejected Create React App to TypeScript

I love Create React App, and I also love TypeScript. That means I really love react-scripts-ts , which is a great way to spin up a new SPA for experimental purposes. Unfortunately, there’s no trivial way to take an existing Create React App (CRA) and ... more


Tuesday, 3 July, 2018 UTC

A JavaScript Object that Dynamically Returns Unknown Properties

A JavaScript Object that Dynamically Returns Unknown Properties

In our current project, we make extensive use of JavaScript objects as dictionaries, with the property name functioning as a key for the object we want to look up. We can use the in operator to test for property presence, and the dictionaries are perfectly ... more


Friday, 29 June, 2018 UTC

Creating Azure WebJobs in F#

Creating Azure WebJobs in F#

My colleague Brian recently wrote about Azure Functions in F#. Azure Functions are great, and I definitely recommend them if they fit your use case. These functions are built on top of an older background processing system called WebJobs. While Functions ... more


Tuesday, 26 June, 2018 UTC

Eliminate Circular Dependencies from Your JavaScript Project

Eliminate Circular Dependencies from Your JavaScript Project

Circular dependencies (also known as cyclic dependencies) occur when two or more modules reference each other. This could be a direct reference ( A -> B -> A ): // file a.ts import { b } from 'b'; ... export a; // file b.ts import { a } from 'a'; ... more


Tuesday, 19 June, 2018 UTC

Setting Up Windows to Build and Run Node.js Applications

Setting Up Windows to Build and Run Node.js Applications

Node.js is just JavaScript, right? So it should be really easy to run Node.js applications on Windows—just download and install Node, npm install , and go, right? Well, for some applications, that’s true. But if you need to compile extensions, you’ll ... more


Thursday, 14 June, 2018 UTC

Mocking TypeScript Modules with Sinon

Mocking TypeScript Modules with Sinon

Lately, my team has been looking for better ways to create and maintain mocks in our TypeScript project. In particular, we wanted an easy way to mock out modules that we built using Sinon.JS. We had a few goals for our mocks: Specific: Each test should ... more


Tuesday, 12 June, 2018 UTC

Combining Redux & Apollo Containers

Combining Redux & Apollo Containers

Redux and Apollo are popular implementations of Flux architecture and GraphQL respectively. A common pattern is to make a GraphQL query with data from the Redux state. If the state value changes, Apollo should re-run the query and the new data should ... more


Tuesday, 5 June, 2018 UTC

Efficient Search Autocomplete with React-Redux & Apollo

Efficient Search Autocomplete with React-Redux & Apollo

The application I’m working on right now has a search box that makes suggestions as the user types and does quick, inline searches to provide extra-fast results. Yesterday, I talked about how we improve our timing with debouncing. Today I’ll dive into ... more


Monday, 4 June, 2018 UTC

It Turns Out I Don’t Actually Know Everything – and I Never Will

It Turns Out I Don’t Actually Know Everything – and I Never Will

Over a recent weekend, I installed a new faucet in a bathroom. Aren’t I handy? Well, not especially—I heard the same joke from the employees at three separate hardware stores: “Well, it’s not a real house project until you’ve gone back to the store at ... more


Tuesday, 22 May, 2018 UTC

What’s the AWS IoT Suite Like? – A Dozen Lego Kits Mixed Together

What’s the AWS IoT Suite Like? – A Dozen Lego Kits Mixed Together

Recently, I’ve been hearing more and more chatter about Amazon’s AWS IoT tool suite, so I decided to do a bit of research to see what they have to offer. As with most Amazon development tools, there is a ton of documentation on these tools. But of course, ... more