I'm Joshua Johanan and this is a blog about writing code

Stream a Massive Gzipped Json File in Python

I found myself with the problem of having to process massive JSON files that were gzipped. The files were 6.8GB gzipped and over 50GB un-gzipped (de-gzipped?). I found myself here because a new regulatory requirement called “Transparency in Coverage” that took effect on July 1, 2022 for Insurance companies to post pricing information that is machine readable. There is a guide with examples out on GitHub. Unfortunately the examples in no way reflect the actual size of the data.

Dont throw exceptions in CSharp use Monads

Nick Chapsas recently released a great video “Don’t throw exceptions in C#. Do this instead”. The quick summary is to not throw exceptions but to use the Result type from LangExt. Nick makes great videos, but there are a few things I want to correct/add to and respond to concerns from the comments. Before we go any further, I LOVE LangExt. I consider it a must-install in any project. Misunderstanding Monads The main reason Nick presents to use Result over throwing exceptions is about performance.

Migrating From Wordpress to Hugo

I recently migrated this site from Wordpress to Hugo. The site had been on Wordpress since 2011. I had wanted to do something different than Wordpress for a few years, but I never knew what I would migrate to. I looked into static site generators which lead me to Hugo. Wordpress made starting a blog easy. I definitely would recommend it to anyone that wants to write their thoughts down, provided that it is through one of the many hosted Wordpress sites.

Simple React Drag and Drop

Up until recently I haven’t had the need to use drag and drop in my React projects. Then I did have the need. My need was simple, a list that could be reordered. I went searching for an example and everything I found just felt too complicated. I wasn’t worried about making it work. I was worried about having way too much boilerplate to reorder a list. I decided on using react-beautiful-dnd.

Practical Functional JavaScript: Why React and Redux? Video

This video series mirrors the blog post series on creating a functional application in JavaScript. This will map closely with the second post of that series. We will cover putting our functional backend together with the DOM. This is where the application becomes a useful item and not just a bunch of functions. In addition to this, we will cover fundamentally why React and Redux are awesome. While we do not use the actual React and Redux libraries, we use the same thinking behind our render functions and state management.

More Posts to come

It seems that I make this post every so often. My last post was made all the way back in February. That was already 5 months ago. I don’t think that many people “follow” my posts, but I know there are some that use RSS. Ultimately my plan is, as always, to have quality content that people find informative. I just get sidetracked at times from making blog posts. I have a regular 9-5 development job that takes up most of my time.

Practical Functional JavaScript

I have made a video to go alongside my last post series. In that series, I focused on showing what it means to write practical functional Javascript. Just like all my other posts, this is done by building something, a Mad Libs generator. The problems that arise from building a Mad Libs generator are perfectly suited to solving in a functional manner. The series is broken up into three parts, first creating a functional backend, then rendering it to the page, and finally testing.

Testing Functional Mad Libs

Testing Testing is very important, but sometimes it gets left behind. This can be because it is not clear how or even what to test. Tightly coupled code is a testing nightmare. It is very hard to unwind specific units of code to test. In addition to this mocking can become a huge task where you have to recreate all the resources the application needs. This is where functional design comes in.

Functional Front End: Why React and Redux?

So, Why React? We will start with React as we need to show how to modify the DOM. Here is some simple code that we will discuss. const R = require('ramda'); const IO = require('monet').IO; //IO monad stuff let addChildren = (elements, root) => { R.forEach((el) => { root.appendChild(el); }, elements); }; module.exports.render = R.curry((root, elements) => { return IO(() => { while (root.firstChild) { root.removeChild(root.firstChild); } addChildren(elements, root); }); }); module.