Category: JavaScript

  • Code Organization in Functional Programming vs Object Oriented Programming

    Code Organization in Functional Programming vs Object Oriented Programming

    Introduction

    A co-worker asked about code organization in Functional Programming. He’s working with a bunch of Java developers in Node for a single AWS Lambda, and they’re using the same style of classes, various design patterns, and other Object Oriented Programming ways of organizing code. He wondered if they used Functional Programming via just pure functions, how would they organize it?

    (more…)
  • Body Beast Lean for 40th Birthday

    Introduction

    For my 40th birthday, I wanted to look good as well as get my haircut like Hawkeye (aka Ronin) from Avengers Endgame. I timed it so I’d do a 6 day a week bodybuilding workout for 3 months, then 1 week of a stage diet, and then take pictures 1 day after my birthday. The next week I’d be ready for Avengers.


    (more…)
  • Easier Asynchronous State Modelling in React Redux or Hooks

    Easier Asynchronous State Modelling in React Redux or Hooks

    Introduction

    Modelling state for asynchronous actions in React using Redux via thunks or sagas is verbose. It requires a lot of code. It also is easy to accidentally miss flipping one of the values and result in a wrong state that your UI then shows the wrong thing. Thankfully there are ways to use Algebraic Data Types to model this state that results in less code in your reducers, whether in Redux or Hooks’ useReducer, as well as in your components. Below we’ll show the 3 problems modelling using Objects can cause and how to solve them using ADT’s.

    All code shown below is on Github. The masterbranch has the Object way of modelling, and the types branch has the ADT solutions.

    Most of the post below is based on prior art from Making Impossible States Impossible by Richard Feldman, and Solving the Boolean Identity Crisis by Jeremy Fairbank. Like Redux, stolen from Elm.

    (more…)
  • Advent of Code 2018 in Elm Review

    Advent of Code 2018 in Elm Review

    Introduction

    I participated briefly in the Advent of Code 2018. Every year, they post 31 coding puzzles, 2 per day. You have to solve them before you can proceed to next one. I wanted to post about what I learned. I’ve never participated before, and wanted to use it an excuse to force myself to use a Functional Programming language. I use Functional Programming concepts in my day job, but never had the opportunity to immerse myself, and force myself, to accomplish harder challenges in a pure FP language. It was doubly hard because the exercises are NOT what I do at my day job at all and are challenging. They were very hard in a fun way, though. Below I’ll cover the 6 exercises I did (I threw in the towel on Day 7), and explain some of the interesting nuances I found either with the exercise and thinking in FP… and thinking in Elm.

    (more…)