About the Author

Lou Mauget

Known as Ed Mauget in civilian life. Lou is a name imposed by IBM in 1966. Newly infatuated with Microservices Architecture. In 2015 I coded MockOla, a wire-framing tool for Keyhole Software. Have coded in Java since it was conceived. Also worked with C/C++. Current interests include microservices, Docker, Node JS, NoSQL databases, functional programming, single-page web applications ... any new software languages/frameworks.

Expression Parser with Antlr4

An Antlr4-Based Expression Parser

Lou Mauget Development Technologies, Java, Programming Leave a Comment

In this blog, we’ll present a simple arithmetic expression parser implemented through an Antlr4 parser generator. It will be able to take in an input string (such as 2+4+-4+-2*10%9*7) to produce the result (-12.0).

You may be thinking, “Great, but what’s the point?” Well, to answer your question, as simple as this example may seem, the principles involved actually extend to use cases such as DSLs, transpilation, and anything else expressible by grammar rules.

This post has two parts. In part 1, we’ll discuss the background components of a parser. In part 2, we’ll cover building the demo and running it. If you already understand grammar parsing, you could skip part one.

JSON Web Token .NET Core Demo

Lou Mauget .NET Core, C#, Development Technologies, Programming 1 Comment

In this post, I present a tiny .NET Core C# JWT API demo that creates and parses a JSON Web Token (JWT). A self-contained Swagger UI dashboard exercises the API. 

We can’t dead-drop a JWT demo without wrapping it in words about JWT background. I’ll set the scene by introducing tokens, JWTs, and surveying session state residency tradeoffs. We’ll then migrate to, high-level JWT JWT use cases, and arguments about if or when to use JWTs. 

I seek to give equal coverage to JWT upsides and downsides. Let’s get started.

Elm Language

Lou Mauget Development Technologies, JavaScript, Programming, Single-Page Application Leave a Comment

This blog is about my dalliance with Elm; a purely functional, statically typed language that has type inference. It compiles to JavaScript. Functional programming is compelling, but heretofore, I’d only woven cherry-picked techniques into large object-oriented projects. In FP parlance, I’m partially applied! The times, they are a-changin’.

In this article, I’ll:
– touch on the reasoning for giving a nod to functional languages and data immutability;
– move on to Elm; a blazing-fast, statically typed, purely functional browser-side language that compiles to JavaScript and follows the principles of functional reactive programming;
– survey background items and the Elm environment;
– show a simple type-and-click application, followed by a more realistic To-do application;
– end with my impressions from functional-programming semi-outsider point-of-view.

Flow: A Static Type Checker for JavaScript

Lou Mauget Development Technologies, JavaScript, React Leave a Comment

In this post, we’ll discuss the concept of types, compare static and dynamic types, and show an unobtrusive type inference package provided by Flow.org.

Facebook developed and maintains Flow. The package provides static typing to normally late-bound JavaScript code, including React code. It provides this analysis to a JavaScript application, even if it is an existing application.  Flow operates by carrying out a static abstract syntax tree (AST) analysis of type flows at build time.

React Native With Expo

Lou Mauget Development Technologies, JavaScript, Mobile, React, React Native Leave a Comment

The React Native framework supports an installable mobile application created from JavaScript source code. It is not a React-based web app wrapper. It isn’t a code generator. There is no required application source code in Java, Objective-C, Swift, or Kotlin. Moreover, a single React Native application targets both iOS and Android devices.

In this blog, we show a quick-start that results in an executing application on a phone, within five minutes. That application is live-reloadable, native cross-platform, and written in JavaScript. It is not a web application.