Where do fun, useful apps come from? Teams that know their users.

Photo by David Travis on Unsplash

A friend recently asked what to put in a document to begin a discussion about software architecture for an upcoming service offering.

It’s a sort of nebulous question really, but you have to start somewhere.

Does it need native mobile support? What’s the estimated bandwidth and storage requirement? These are reasonable questions that would inform the architecture. But I took it to mean “What do I need to know in order to architect a successful app for my users.”

Define Successful

One of the most “successful” applications I ever wrote was a seemingly boring one. A food service physical inventory program for…


Using Etherscan’s Address Tags and Transaction Notes

Photo by Clifford Photography on Unsplash

Let’s say you’re executing a lot of Ethereum transactions, some manually and some scripted. When the dust settles, you need to make certain that everything went perfectly because there’s a lot riding on it. What’s the best way to satisfy yourself that it all went down as planned?

A Flurry of Activity

I recently spent about 26 hours engaged in what is arguably the most intense set of network interactions of my entire career. The stakes were high, and the clock was ticking.

The job?

Deploy 4 smart contracts to the Ethereum mainnet and prepare them with their initial state data.

The next day…


Figuring out the easiest way to extract substrings of predetermined a length, along with any remainder.

Photo by Barrett Ward on Unsplash

No matter how long you code, you’ll always find yourself with some seemingly simple task that you don’t happen to have a handy solution for in your toolbox.

If you don’t find a quick answer on StackOverflow or MDN that makes you go “doh” and lets you move on with your work, then you’ll probably just have to code it yourself. Personally, I like those moments. It’s what I live for as a programmer.

The Task

I have a JavaScript string of arbitrary length, and I…


A fix for that one case where Open Zeppelin’s SafeMath doesn’t help

Photo by Zac Harris on Unsplash

The Common Wisdom

If you are an Ethereum developer using Solidity, you most likely know about overflow and underflow. If not, briefly consider the following code:

uint8 myVar = 255;
myVar++;

Since a uint8 can only hold values between 0 and 255, The result has overflowed the variable’s cup, the result being a ‘wrap-around’ effect. The value is now 0. A similar effect happens when you subtract from 0. You end up with the maximum value of your unsigned integer type, 255 in the case of a uint8.

It’s widely known…


Emphasize These Beats to Keep Your Reader Engaged

Presenting… the next scene! Photo by Romain Rullaud on Unsplash

It was the best of lines, it was the worst of lines.

Most writers are aware that the first line, paragraph, and page of a story must be perfect. Compared to the rest of the words in the work, these demand an inordinate amount of attention.

And with good reason.

If the cover of the book caught your potential reader’s eye, and the blurb was catchy enough to arouse further interest, then the first page is the next item up for evaluation. Whether the reader is browsing at a bookstore or online using Amazon’s “Look Inside” feature, your book isn’t sold until you pass the first page test.

But once you’ve passed…


Or, Why Hulu is Keeping Me Up at Night

Ignore the above warning. The following is fine for anyone, really. Image Credit: Hulu

I love Hulu, but their “mature audiences” advisory bothers me to no end. Specifically, the position of the word “only.” Every time the announcer reads these words, I mute the audio and look away.

Don’t get me wrong; odds are I’ll commit a passel of crayon-worthy constructions before reaching the end of this article. It’s just that this demon phrase has gotten under my skin with repeated exposure, and I must exorcise it. Perhaps in the comments, someone can set me straight as to why I should learn to accept this…


Use this simple rule to keep your reader engaged from start to finish

Well-written pages practically turn themselves. Photo by S O C I A L . C U T on Unsplash

The Rule

Regardless of premise, prose, or point of view, pay out action and character development at equal rates.

Continuous Action

Start in the middle of some action if possible, so that readers never say, “It took a while to pick up, but when it did, boy was it exciting.” For every reader who holds on long enough to gain that perspective, ten others drop out because it wasn’t engaging right away.

When describing where the action is taking place, give enough realistic detail to place the reader in the scene, but not so much as to bore them. Work to find the telling…


Google Ngram Viewer: Historical use of the English phrase “am I right”

Google has some great free tools, am I right?

We can thoroughly research the intimate practices of businesses and religions. Get the inside scoop on cults, cartels, and contract killers. With Street View, a writer can learn an unfamiliar location well enough to describe it in vivid detail.

Everything’s out there, it seems, and I do trust Google not to be evil with my search history. But sometimes, if you’re like me, you probably feel the need to enter: “Hey, if you’re listening, you do know I’m just writing a novel, yeah?” in the search box.

Anyhow, today, my character…


Ah, the thrill of being first to market. Photo by Chris Barbalis on Unsplash

Getting Our Fix

I’m going to reveal a deep, dark, and personal consumer secret: I love Reese’s Dark Chocolate Miniature Cups. So does my wife. They’re our go-to treat, snack, dessert. We never run out of them.

Almost never.

I say this because recently, an inexplicable thing happened. All of the stores we visit that carry them ran out. And they didn’t stock back up for ages. Like months.

Sometimes this happens to a product if a rebrand is happening, and I get that. But we needed those things. Our lives were upside-down with out them. So we went online and found a…


This Saturday, a Modern JS Style Throwdown. Don’t you miss it!

I was recently doing a JavaScript code review and came across a chunk of classic imperative code (a big ol’ for loop) and thought, here’s an opportunity to improve the code by making it more declarative. While I was pleased with the result, I wasn’t 100% certain how much (or even if) the code was actually improved. So, I thought I’d take a moment and think through it here.

Imperative and Declarative Styles

To frame the discussion, imperative code is where you explicitly spell out each step of how you want something done, whereas with declarative code you merely say what it is that…

Cliff Hall

Software Architect, Author, Musician, Dude. https://cliffordhall.com

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store