The Living Specification: A Quixotic Quest


I want to tell you of a beautiful, elusive dream. It is an idealistic goal I call “The Living Specification.” The Living Specification is the idea that we can continue to update a specification, the description of an application’s behavior, throughout its life. I will detail why this is so challenging, and the steps that Grio can take to make this dream a reality. 

Demystifying Regular Expressions


In this post, I am going to introduce one of the most contentious tools utilized by software developers: regular expressions. Regular expressions can be extremely useful, but they can also be complex and tedious at times. Many developers, therefore, have complex relationships with them. 

Internet Linguistics: Examining the Way We Talk When We Type


What is the goal of communication? To accurately convey to someone else what you mean. Whatever it is, tonally, contextually, and based on the content, the point of the conversation is to ensure that the person you are talking to is understanding what you want them to understand. 

With the rise of technology, the ways in which we communicate have become much more varied and complex. In this post, I will examine how the way we text is a reflection of the way we speak in a society where more and more communication is happening textually.

Who’s Watching You? Choosing a Better Browser


What emotions do you feel when you see the Google Chrome, Internet Explorer, Firefox, or Microsoft Edge logos? You might feel a sense of familiarity, comfort, or the sense that you are looking at something you are used to using. 

Do you feel fear? If not, you probably should. In this post, I am going to be examining the data privacy issues of modern browsers and introduce alternative options that are focused on keeping you, and your data, safe. 

How Did Someone Purchase Nyan Cat? The Truth Behind NFTs


If you were on the internet in 2011, you probably spent at least some time watching the mesmerizing Nyan Cat video. Last February, a special version of this gif was sold for more than $600,000. But how does this happen and what does it really mean? Welcome to the world of NFTs. 

When Small Software Bugs Cause Big Problems


For most of us, software bugs are the annoying little things that we encounter in the form of small errors, like misaligned text or a clipped image. However, in rare situations, these small bugs can have massive ramifications. In this post, I will be discussing three such events: the Therac-25, the Mars Spirit Rover, and the June 2021 Fastly malfunction. 

Staff Spotlight: LaToya Brown


I am a Quality Assurance Engineer with Grio. If you partner with Grio, there is a good chance that I will get the opportunity to work with you to create a final product you love. In this blog post, I will tell you a bit more about myself and the role of the Quality Assurance Engineer.

Using HAML with Ruby on Rails


Big Picture

The ultimate goal of any webpage is to display useful information to a user. What the user sees on the page is commonly referred to as the view layer. Over the years various methods of delivering views have been developed. 

Automating Your Home Garden


Every year, the technological advancements available to the home gardener become more abundant, bringing more users the ability to easily maintain their very own fresh produce aisle. From soil sensors to plug-and-play growing machines, today it’s easier than ever to grow your very own herbs and vegetables.

GraphQL Subscription using Absinthe


Over the last four months, I have been working on a project that helps architects to design strategies they need to optimize workspaces. We have used Elixir, Phoenix, and Absinthe to create a GraphQL API. Currently, we are interacting with this API by sending in queries and mutations. There is a third operation that can be implemented to receive near real-time updates of some server action in the clients of an application.

In this post, I’m going to discuss what GraphQL subscriptions are and how to implement them using Absinthe.