Samuel Mendenhall

Recent Posts

Best practices with React and Redux web application development


In the past year, our team has re-written one of our internal apps from Angular to React. While earlier React experience on the team ranged from new to experienced, we learned a lot along this journey. Much of what we learned has been from experiencing pain points in development, or inefficiencies, and either researching others’ best practices or experimenting with what works best for us.

Continue reading “Best practices with React and Redux web application development”

Angular, React, and Javascript framework fatigue

Angular, React, and Javascript framework fatigue


I’m an avid follower of Hacker News and many various programming related subreddits. There is a constant flow of posts where the author expresses fatigue, weariness, and many times backlash at JavaScript and the plethora of front-end frameworks. Much of this conversation surrounds React and Angular and then other frameworks such as Mithirl, Meteor, Ember, Vue and others (and there are many others). The conversation many times will go X is the best framework, or X is not the best framework Y is, and the reasons, or much consternation that X or Y is short lived and will be superseded soon by Z. Then many times it is just complaining about X, Y, Z, and frameworks and JavaScript in general.

I’d like to offer a few thoughts counter to this outcry of fatigue in the industry.


What if you viewed the churn and the constant creation of frameworks and libraries as a positive growth factor. What if you viewed the JavaScript ecosystem as parallel to the machine learning ecosystem.

Continue reading “Angular, React, and Javascript framework fatigue”


Asciidoctor on OpenShift

Asciidoctor encompasses and builds an ecosystem around Asciidoc for writing documentation, and well, writing anything.   If you want to host your own blog, documentation site, book, ect.., Asciidoctor would be an excellent choice.  If you want to do that in OpenShift, that is what I’m going to help you with.

Getting Started

Create a Sinatra ruby gear or on the command line.

rhc app create mydocs sinatra ruby-2.0

Continue reading “Asciidoctor on OpenShift”


Scala vs. Node.js as a RESTful backend server



node-jsI’ve been involved with full-stack development for a while now, especially stacks involving single page apps. When choosing to go with a single page webapp the backend concerns change. While any backend will do the job (think ruby, python, java, etc.) more emphasis is placed on the front-end stack as most of the time is spent in Javascript and less in the backend language since that is not where the UI logic resides. This is liberating in some senses as it allows one more freedom as language deficiencies become less of a problem. You don’t have to decide between a language based on how you like the backend html templating or framework, since that is no longer involved.  Think python tornado templates, JSF, or jade, three drastically different templating choices.  But none of that matters when going with a single page app in the browser.

Continue reading “Scala vs. Node.js as a RESTful backend server”


Have some CoffeeScript with your React

In my continual search for the ever more efficient and pragmatic Javascript UI framework I’ve stumbled upon React, but not just React, the special combination of React, Coffeescript, and RequireJS.

JSX is the more elegant way to compose the DOM within React classes, however, it does require an additional compile step, and there is a bit of added complexity when integrating with RequireJS.

It would be hard to give up JSX and go back to building the DOM with plain javascript, the syntax isn’t so elegant, and it gets quite busy. Coffeescript, at first thought, may seem like a lesser alternative; I will propose, however, that it may just be equal to more practical than even JSX.

Continue reading “Have some CoffeeScript with your React”


Communicating Large Objects with Web Workers in javascript

As html5 and client side solutions become more prevalent, the need for handling more and more data through javascript will increase.  One such challenge, and the focus of this article, is a strategy for handling hundreds of megabytes of data through Web Workers.

What created this need for me personally was the development of Log Reaper [1] which is a client side approach to parsing log files with no server side upload or processing. Log Reaper identifies and parses log files (of currently accepted types) in a Web Worker, then communicates the structured objects back to the browser where they are further map reduced and visualized.

Continue reading “Communicating Large Objects with Web Workers in javascript”