Brian Leathem

6 minute read

In this post I will describe the flow of actions through a Redux application configured with redux-observable middleware. In a Redux application, actions are dispatched and reduced synchronously, which makes it relatively straightforward to follow. However with redux-observable epics, we can introduces asynchronicity into the action flow when actions are dispatched as a result of asynchronous events. In this post we will look at what happens when a redux-observable epic emits a sequence of actions ([1,2,3]), and those actions in turn trigger epics that emit more actions (eg.

Brian Leathem

2 minute read

It seems like just yesterday that I found myself awestruck with awestruct, and yet here I am today reviving my blog with a new site building tool called Hugo. The motivation for this was two-fold. My awestruct/Asciidoctor gem configuration had fallen out of date, and needed some TLC to get working again. I wanted to learn Go. While I’ve successfully migrated my blog/site to hugo, I have not managed to realize goal 2 and learn about Go in the process!

Brian Leathem

3 minute read

crosspost from: https://blog.patternfly.org/patternfly-roadmap-update/ Last November we published the PatternFly roadmap where we put forward the idea for PatternFly 4 and 5, an effort around web components, and a CSS rewrite. Alpha releases for PatternFly 4 and PatternFly Web Components delivered initial progress on these efforts. However, the story has grown more complex with the introduction of additional PatternFly framework repositories. In this post we will provide a status update on our delivery of our roadmap, and explain how all these repositories and future versions tie together.

Brian Leathem

4 minute read

Patteryfly 4.0.0 Alpha.2 Release crosspost from: https://blog.patternfly.org/patternfly-4-0-0-alpha-2-release/ In the PatternFly Roadmap we outlined our future plans for PatternFly and laid out the goals for the PatternFly 4 release: Providing initial support for Angular 2 application development Updating the libraries on which Angular-Patternfly is built Making the dependence on jQuery optional when consuming Angular-PatternFly Today, we are excited to announce our first PatternFly 4 alpha release, PatternFly 4.

Brian Leathem

8 minute read

The Patternfly Roadmap crosspost from: https://blog.patternfly.org/the-patternfly-roadmap/ The UXD team has been hard at work churning out PatternFly releases at a regular cadence, steadily increasing the number of design patterns and design pattern implementations. In recent releases we introduced a number of changes aimed at simplifying the consumption and contribution processes for both designers and developers. There are a number of ways we want to improve and scale out PatternFly that can’t be addressed without introducing breaking changes to the project.

Brian Leathem

4 minute read

The mediator pattern Addy Osmani has a great blog post introducing the mediator pattern in his post Patterns For Large-Scale JavaScript Application Architecture. I’ve recently started working with this pattern, using the mediator.js implementation available via npm. Overall the pattern works well when notifying one module of changes in another; for example when publishing state changes. However one area where the pattern seems to fall short is when one module wants to request information from another.

Brian Leathem

4 minute read

At this year’s DevNation/Red Hat Summit I was part of the team that created the Red Hat Summit Middleware keynote demo. I made the custom front-ends in the demo using Reactive Extensions for javascript (Rx.js) to manipulate the datastreams from the various back-end systems and to transform that data into a form that can drive the UI using d3.js. If you missed the keynote, you can watch it on YouTube below (the keynote demo starts at 19m).

Brian Leathem

5 minute read

I presented a Session on Rx.js at DevNation this year. My goal was to impress upon the audience how Observables can be interpreted as a collection-in-time. This analogy was very well described by @jhusain his Async Javascript at Netflix talk that initially got me excited about Reactive Functional programming. My contribution to this idea is to present it in a visual way. To visualize both a “regular” collection, as well as a collection-in-time, I used the d3.

Brian Leathem

3 minute read

Delegating to 3rd parties to manage your authorization is incredibly helpful when developing a new application. A benefit to users and developers alike, this task is made all the more helpful with the number of social networks providing Oauth2 APIs that we can use for our authorization. In this blog post I will address using the Google Play services on Android from a hybrid mobile Cordova application to retrieve an Oauth2 token that we can then use with Google’s Oauth2 REST API.

Brian Leathem

4 minute read

Adding a splash screen to your mobile application is useful to provide users with feedback that their application is starting while performing any initialization tasks. In this blog post I will summarize how I created a scalable splash screen and how I configured my Cordova application to use it. Drawing the splash screen If you’re not an artist (as I am not!) then creating a graphical splash screen can be a somewhat daunting task.