About the Author
Avatar photo

James Slaughter

Iโ€™m a software developer from Kansas City who loves being a dad, making and listening to music, and appreciating nature. Iโ€™ve led software teams and have worked with clients to find the right solution for them. I have my Bachelorโ€™s in Mathematics and Statistics, and approach programming and problem solving as an exercise in those skills. At Childrenโ€™s Mercy, I led a software team in the growing Childrenโ€™s Research Institute, managing and developing their regulatory and grants systems. After 8 years of growth I worked for Huron Consulting Group, where I worked closely with a large education system getting their disparate, siloed research business applications integrated. I understand the challenges that legacy systems and processes face and have led successful change management with my clients, including the rollout of a conflict of interest management system that has over 100,000 users. Iโ€™ve worked quite a lot with MS SQL Server, Windows Server, and Linkx. Iโ€™ve also done freelance work over the past year using React and Electron. Iโ€™m very comfortable with both the frontend and the backend. I try to stay away from the screen in my spare time: finding new places to hike and practice plant identification and foraging, or, Iโ€™ll be twiddling up new sounds on my hardware synthesizers. I love spending quality time with my kids, ages 12, 10, and 3, and we keep plenty busy! This summer we found a couple of caterpillars that we are raising, and are exploring the creek by our apartment.

Learn Svelte by Making a Word Puzzle: Part 2, Reactivity

James Slaughter Articles, Development Technologies & Tools, JavaScript, Learning Svelte, Tutorial Leave a Comment

So far in this multi-part series, we’ve used Svelte to make the frontend of a Word Puzzle Game, but it does not receive user input, yet. That doesn’t make for a very fun game!

In Part 2 of this series, we’re going to make our game a little more functional. Weโ€™ll accomplish the following tasks: (1) allow users to guess a word, (2) manage state for the guesses, and (3) track the correctness of each letter in each guess.

By the end of this post, we will be one step closer to having a Svelte-based, fully functional Word Puzzle Game! Without further ado, letโ€™s get started.

Learn Svelte By Making a Word Puzzle: Part 1

James Slaughter Articles, Development Technologies & Tools, JavaScript, Learning Svelte, Tutorial Leave a Comment

Svelte is a growing JavaScript component framework compiler delivered in a developer-friendly package. Usage of Svelte has been growing – IBM and even Apple (in its newest beta of Apple Music) have been using it for their frontend needs.

For a number of reasons, I think itโ€™s a tool we developers need to get on board with. So, letโ€™s embark on an active learning assignment: making a word puzzle with Svelte!

Why Functional Programming

James Slaughter Articles, Development Technologies & Tools, JavaScript, Python, React 1 Comment

React has gotten a little funny of late – a few years ago, it was normal to embrace the Object-Oriented paradigm, writing each component as a class and doing lots of this-binding.

Today, however, hooks and functional components have taken over React, and with it, a style of programming unusual for front-end frameworks is growing in popularity: Functional Programming.

This programming style has been in use for many years: Lisp, Haskell, Clojure, and OCaml are all established, though mainly out of the mainstream, languages with a rich history and broad application. Thinking โ€˜functions are first-class citizensโ€™ sounds strange, especially to new JavaScript developers who have spent most of their time in Python or Java that come from an Object-Oriented perspective.

Thatโ€™s why in this post, we will go over the basics of Functional Programming, how we compose functions, a handy implementation of a โ€˜pipeโ€™ function that will compose functions, the process of currying and functions-as-return-value, and how we can use these concepts in React using Higher-Order Components.