Blockchain Implementation With Java Code

David Pitt Articles, Blockchain, Java 4 Comments

Bitcoin is hot — and what an understatement that is. While the future of cryptocurrency is somewhat uncertain, blockchain, the technology used to drive Bitcoin, is also very popular.

Blockchain has an almost endless application scope. It also, arguably, has the potential to disrupt enterprise automation. There is a lot of information available covering what and how blockchain works. We have a free whitepaper that goes into blockchain technology (no registration required).

This blog will focus on the blockchain architecture, particularly demonstrating how the “immutable, append-only” distributed ledger works with simplistic code examples.

As developers, seeing things in code can be much more useful in understanding how it works, than simply reading technical articles. At least that’s the case for me. Let’s get started.

Cucumber Testing in Spring Batch

Dallas Monson Articles, Development Technologies & Tools, Spring, Spring Batch, Testing 3 Comments

With the evolution of microservices and the scalable nature of modern distributed architectures, batch processing seems to be falling out of favor. In fact, the term batch processing itself seems to be unfavorably associated with monolithic mainframe applications and thus does not seem to have much appeal.

Unless, of course, you are working on a project that is being designed to replace or modernize one of those mainframe applications. If that is the case, then likely some sort of batch process has come up with a non-functional requirement that needs to be dealt with in the new system.

For this specific concern, a very powerful framework has been provided: Spring Batch. It has many of the same features of a mainframe batch process like restart/recovery, chunk processing, and error handling along with exit codes. This framework allows developers to create powerful batch processing applications in the Spring Framework and enjoy the rich backplane of capabilities that this provides.

Continuing with the modernization thread, you will likely be tasked with providing some assurances to the business that the new, modernized process will produce the same outcome as the one that is being replaced. Here is where testing comes in, and where Cucumber specifically shines.

Cucumber provides behavioral testing support in the Spring universe. This allows developers and business users to collaborate through a common set of conventions and verbiage to validate that the app is behaving how the business intended as well as how the developer coded it.

In this post we will cover the following:
Why use Cucumber with Spring Batch
An overview of Cucumber and an example Cucumber Test
How to start with Cucumber and Spring Batch…

Default image for blog posts - purely decorative

Pseudo-Static Row Mappers, a Healthy Alternative to Static Row Mapping

Ryan McCullough Articles, Java, Spring Leave a Comment

If you know Spring, chances are pretty good that you’ve also worked with RowMappers and everyone’s #1 favorite BeanPropertyRowMapper. Okay, maybe not EVERYONE. But EVERYONE will acknowledge BPRM’s power potential and how wonderfully easy it is to use!

While BeanPropertyRowMapper may be the smartest and most beautiful on the RowMapper block, many in the industry refuse to give it the time of day, and for perfectly justified reasons.

Sometimes, when we can’t have beauty and wisdom, we’re forced to settle for loud and predictable. Yes, I’m talking about hardcoded, unchanging, tell-it-like-it-is, static RowMapper. Hate on them all you like, Static RowMappers are fast, easy to understand, and they seem to replicate like tribbles.

But, as many of you know, an application can grow into a swamp of one-off RowMappers. ESPECIALLY if you are working with a lot of high-throughput batch operations that need to run strictly optimized queries for performance as to avoid any unnecessary marshaling of data.

Recently, I’ve tried a mildly clever alternative to RowMapping I like to call Pseudo-Static Row Mappers. In this post, I introduce the basics of Pseudo-Static Row Mappers. We show how they give the tough rigid optimization and control of hard-coded naming and data typing while retaining BeanPropertyRowMapper’s spirit of freedom.

Thoughts on Application State

Mat Warger Articles, AWS, JavaScript, React 1 Comment

Use Redux! Use MobX! Just use `setState`!
Redux is functional! Mobx is reactive! `setState` is built-in!
But Redux has so much boilerplate! But MobX is more difficult to debug! But `setState` doesn’t scale!
Why don’t you just use Rematch to abstract the Redux boilerplate? Do I use redux-thunk? redux-saga? redux-observable?
How about using Unstated? How about just using the Context API?

:head-explodes:

There are a lot of options for developers regarding how and when to use state management libraries (SML).

Remember those last two articles (The Joy of Forms with React and Formik & One Router to Rule Them All: React Router) about the massively underplayed game library? There was a third part to come — a follow-up meant to implement an example of state management for an application. The application was small, granted, but this somewhat contrived example would tie it all up. It’d be the cherry on top. It would complete the rule of threes. 😉

There is not going to be another tutorial about which state library we can use to better manage our game library. Rather, in this post, we’re going to look at how and why you might use a library to manage your application’s state, and why that particular application is a perfect example of when you might not need a SML at all.

Keyhole Announces Platinum KCDC 2018 Sponsorship & Speakers

Keyhole Software Articles, Community, Company News, Educational Event Leave a Comment

We are pleased to announce that Keyhole Software is a Platinum Sponsor of the 2018 Kansas City Developer Conference! 2018 is Keyhole’s sixth year as a KCDC conference sponsor.

The Kansas City Developer Conference is a Kansas City-based, non-profit software developer conference. The 10th annual KCDC conference will be held from July 11-14th, 2018. Main conference days are Thursday & Friday, July 12th and 13th.

Day one of the conference, Wednesday, July 11th, will be a day of “Pre-Compilers” – optional, full-day, hands-on workshops on a specific topic. July 12th and 13th, the main conference days, will feature one-hour breakout sessions. Additionally, July 14th will host a KC Kids Conference (KC)2….