Thoughts on Time

Photo by Erik Mclean on Unsplash Time can go fast. Really it only goes slow when we are very much “living in the moment”. But even then, looking back, it seems to have gone fast. I never understood this cliche: “Spend the day as if it is your last”. We don’t. We cannot. It’s not a good idea. We have to spend the days as if it’s not our last because it probably isn’t. I get the point of the suggestion, but it’s pretty fucking weak in my opinion. ...

November 1, 2021 · 4 min

Part IV: Sending Function Arguments and Receiving a Return Value

This guide is part four of the series, X86–64 Assembly Language Program. Sending Function Arguments and Returning a Result In the previous post of this series, we saw how to define and call functions in x86–64 Assembly. Now I wanted to know how to provide arguments to a function and return values. In other words, when this is done in a higher-level language, how is it translated at the Assembly code level? ...

October 25, 2021 · 3 min

Thoughts on Fear of Death

In the United States, there have been 658 thousand deaths attributed to Covid1. It’s a lot. For comparison, 38 thousand die each year in driving incidents. We lose from 20 to 60 thousand to the flu in a given year which makes Covid about 20x more deadly. In World War II 405 thousand died. In the Civil War - 655 thousand. One difference with war is the loss of primarily young men. About 1.8 percent of those lost to Covid are under 40 years old. Like many, Covid had me considering my own mortality. ...

September 28, 2021 · 3 min

Part III: Printing Command Line Arguments

This guide is part three of the series, X86–64 Assembly Language Program. Now that we’ve set up an efficient development environment, it’s time to write some actual Assembly Language code. In this guide, I’ll share the resources and processes I followed to build a simple Assembly Language program. Printing Command Line Arguments In order to demonstrate the concepts let’s write an assembly program that counts the number of unique words in a text file whose name is provided as an argument. ...

September 25, 2021 · 6 min

Part II: Finding an Efficient Development Cycle for writing Assembly Language

This guide is part two of the series, X86–64 Assembly Language Program. Now that GDB is working well with Docker, the next step is to find a development cycle that enables you to quickly run code and debug it if needed. I prefer to develop within VS Code rather than having to develop directly on the Docker container with vim. The question is how to develop on VS Code, then quickly compile, link, run and debug the code on the docker container that is now set up? ...

September 17, 2021 · 3 min

Part I: Getting Started Writing Assembly Language

This guide is part one of the series, X86–64 Assembly Language Program. This is a guide to setting up a low friction development environment to simplify writing and debugging assembly language programs. Why Learn Assembly Language He who hasn’t hacked assembly language as a youth has no heart Learning assembly language improves one’s foundational understanding of software. With improved fundamentals, you can judge the utility of upcoming technologies more accurately which I think is a super important skill set. Making the right bets on which technologies come to dominate means you can more optimally invest your time and even money. For example, it’s well known that those with a fundamental understanding of the cryptocurrency space immediately understood the value of blockchain and literally made millions of dollars with nearly no additional effort. ...

September 12, 2021 · 6 min

Location Based Social Networking

WHAT IS LOCATION BASED SOCIAL NETWORKING Location Based Social Networking is a new approach to online networking. The idea is that the connections and interactions between users are based on creating virtual data that is tied to a specific location. In the most simple example, a user can store a message in a specific location in virtual reality. A Location Based Social Network would then allow other users to “find” this message by arriving at that same location. The information does not exist in the real world; it is only the application that these messages can be created and found. ...

August 29, 2021 · 4 min

Babel Roulette

The Difficulty with Learning a New Language In my opinion, the most useful method by far when it comes to learning a new language is (maybe not surprisingly) speaking with native speakers. The more often the better. However, this is not always easy. For some, it’s not comfortable striking up conversations with strangers. It’s not a lot of fun stumbling through a basic sentence while your hostage tutor waits. Plus, often times the conversations is short lived; not providing much of an opportunity to practice. ...

March 30, 2021 · 6 min

How to Create a Private Digital Library Available Anywhere

There are a number of bundled solutions for hosting your digital library out of the box. Those are great but there are some setbacks. Namely, you get locked into the providers eco-system — for example, storing books with Amazon means it’s easiest to purchase books from Amazon at their price and selection. Hosting your own data gives you freedom to source from anywhere, share, try different content viewing options. It’s generally more flexible and, importantly, it’s more fun. ...

August 3, 2019 · 5 min

How to Avoid New Relic Metric Explosion

SafetyCulture we use New Relic to monitor most of our services. It has been hugely valuable to our company by enabling quick analysis of massive data sets in near real-time. New Relic is a regular source of actionable insights; for example, the iAuditor API team recently leveraged the New Relic dashboard to adjust rate limits for an expanding customer base. This article describes how to avoid one of the common pitfalls experienced by users of New Relic. That is, a Metric Grouping Issue (MGI) or “metric explosion” as it’s often referred to. ...

September 13, 2018 · 4 min