Hello!
I’m a problem solver.
I design systems and build solutions.

 

Current featured post: A New Side Quest

You don't hate JIRA, you hate your manager

It seems like it has become popular to hate on JIRA. In fact, a good friend of mine sent me this, which is what triggered this post: (if you're the owner of the image, reach out to me and I'll attribute it properly) I'm usually…

My job is safe - for now

Recently I've been toying around with ChatGPT. This is of course after I reviewed their Privacy Policy and ToS which promise not to share my information. I'm not keen on training robots to rise up against us. More realistically - I'm not keen on giving…

Solidity - How I loathe thee

Disgust: this is the best word I could find to describe how I feel about working with Solidity.  That's right - it's a rant post. A while ago I was doing a blog series about building a game on Hyperledger Fabric. I promised myself, and…

VFIO Woes

The saying "Newer is not always better" definitely applies when working with VFIO device passthrough. With everything still being developed and standards being formed, it's pretty common for new versions and minor changes to shatter your Jenga tower. I guess it can't be the bleeding edge without some blood.

Man Vs Machine (Learning)

It seems you can't open a news site without reading an article about how "AI" and Machine Learning are going to displace humans, or the ethical implications of "AI" using human works without proper compensation. This feels like Man Vs. Machine - Part 5. This…

Empty Bus Factor

The Bus Factor is a well known phrase that refers to how much risk a team has if a single person is hit by a bus (or disappears for some other reason). It's often used as a reminder to not rely so heavily on one…

Linux Mint 22 and XRDP

History: I stopped using Ubuntu because I really dislike the Unity interface they made default. I stayed away because they started silently replacing packages with snap. One thing that I miss in Linux Mint is the easy ability to share my screen. This is an…

Now just do the thing

The code I wrote in this series was about 1.5 weeks of work. Then it took me 3-4 weeks to do all the writing for it. Obviously I could get more done if I didn't also teach and explain along the way, but I thought…

My thoughts on Go

Summary My initial knee-jerk reaction about Go was correct: it's a language made by someone who is clearly very opinionated and seems to miss the forest for the trees. However, it seems that their opinions align with mine enough that I somewhat enjoy using it. I …

Putting It All Together

We started with an idea, then some sample code, and now we have a fully operational Death Star contract. Now we just need a network to deploy it to, and a way to talk to the contract.

Adapting the Code - Writing Fabric Code

Hyperledger Fabric does not use the term "smart contract", but instead "chaincode". I prefer this term for two reasons: My previous team and I built an entire SDK to soften up some of the sharp edges in the TypeScript Fabric SDK and make it faster…

Adapting the Code - v1 Data Structure

Let's take a look at how the objects ended up: In addition to the improvements made above in v0.1, we have also added a key (indicated by PK in the diagram) and arrays to track the characters and dungeons owned by the player. There are…

Adapting the Code - Key Considerations

This entire section assumes we are using LevelDB state storage for Fabric and not CouchDB. I need to write another article to explain why and the differences between the options, but for now you can read the docs In a Key/Value database, the Key is…

Adapting the Code - Initial Improvements

What does it take to turn a program into a smart contract? Well, first we need to have an idea of what our program does (see the First Code post). Now we have that, so we can start to shine some light in the dark…

First Code

As you can see from the previous post there are a lot of things to consider when building something on-chain. It's easy to get overwhelmed by this and reach a state of analysis paralysis. The best way I have found to break out of this is…

Design Considerations

From a blockchain perspective the most important thing to remember is: Fabric is not Ethereum. Though many of the same data design and concurrency principles will still apply, there are definitely differences to know as we design our game.

A New Side-Quest

I've written about being a wildcard before, and now I've recently faced a similar issue again. The problem with being passionate about what I work on is that a hobby becomes my primary focus, and then becomes owned by the company I work for, and…

Reset

You may notice some changes to my website. I've decided to move away from WordPress and try out a static site generator called Publii. The best way I can describe it is as a self-hosted Medium blog. It's simple, but so far has just the…

NFTs

A few of my friends and family have asked me about NFTs. About a year ago I started talking about them and people looked at me like I was crazy. Now that they're all over the news, people want to know - so I'm writing…

Atlas-ian Mistake

You may know that I used to proudly show that I have worked with Atlassian JIRA for many years. I have written countless customizations and even plugins for it. Trained hundreds of people, and ran many successful projects. It all ends now. Over the last…