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.”
One of the most “successful” applications I ever wrote was a seemingly boring one. A food service physical inventory program for…
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?
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.
Figuring out the easiest way to extract substrings of predetermined a length, along with any remainder.
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.
I have a JavaScript string of arbitrary length, and I…
A fix for that one case where Open Zeppelin’s SafeMath doesn’t help
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
.
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
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…
Regardless of premise, prose, or point of view, pay out action and character development at equal rates.
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 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…
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…
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.
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…