Image for post
Image for post

For me, streaming online music started way back in 2011 when Google revealed to the world Google Music. I was able to combine the music I’ve purchased with music from their library and it was awesome. Sound quality was also pretty amazing at up to 320kbps. Whether I was on my phone or desktop, I was able to stream my music. Back then, to my recollection, the only major competition was iTunes (which I rather loathed).

I stuck with Google Music for a long time, and when Google slowly started transitioning the service to YouTube I kept with it through…


Image for post
Image for post
Photo by Caspar Camille Rubin on Unsplash

I’ve recently been working on a small business (that’s not safe for work) called Gay Media Data. The applications runs .NET 5 and is hosted on a Microsoft Azure Linux App Service Plan. The photos and other assets are stored in Azure Storage Containers.

When I initially developed the application, I knew I was going to be handling a ton of photos from a variety of studios/affiliates that I work with. Additionally, I knew I had to create thumbnails of images. …


Image for post
Image for post
Photo by Markus Spiske on Unsplash

Protecting your API endpoints can be a daunting task and while there are many methods to protect endpoints, .NET Core offers a very simple approach which can also be integrated with the .NET Core Identity Framework. In this article, I’m going to discuss one approach I’ve taken to protect some API endpoints. I’m not going to delve too deep into C#, .NET Core, or the Identity Framework itself, but you should still be able to follow along if you’re not familiar with those.

First off, and this is optional, I’m going to extend the IdentityUser class to have a new…


Image for post
Image for post
Using Serilog, .NET Core, and Application Insights

One thing that always drives a developer crazy is when you have your code working in development, and it’s fast, but when it goes to production it suddenly throws some curveballs. Sometimes the response time is several milliseconds and other times it can take a few seconds. What gives!

Thankfully, if you’re hosting your application in Azure, you have the ability to connect your application to Application Insights, even though the option is disabled if you’re running on a Linux App Service Plan. You can do so through Serilog, a simple .NET logging platform with “structured event data in mind.”


Image for post
Image for post
Photo by Fab Lentz on Unsplash

Developing new, healthy habits can be hard. For those going through recovery, it’s critically important to understand how habits are formed and how you can build new ones. It may seem strange for people with an addictive personality to have difficulty creating healthy habits, but they’re different as, quite often, healthy habits won’t have the immediate “high” one might have experiences during their addiction. Even though exercise has been shown to help the recovery process by sending out similar “happy” chemicals to the brain, it can take time to develop that exercise habit.

So, let’s go into how you can…


Image for post
Image for post
Photo by Volodymyr Hryshchenko on Unsplash

Hello! In this post, I’m going to cover how I built my first chatbot, StanLeeBot, with Google DialogFlow which retrieves information from Marvel and DC Comics’ website using Google’s Custom Search Engine. In some integrations, the chatbot can shorten urls too!

I’m going to make a couple assumptions before moving forward:

  1. You’re familiar with C# & .NET Core. Later on in the article I’ll be referencing code snippets on GitHub which may utilize dependency injection, etc.
  2. You have a general understanding of DialogFlow and its terminology.

If you wish to skip through everything and check out the code, you can…


Image for post
Image for post
Albert Einstein

Since I was 13, I never took a class for programming and very few books peaked my interest. What I do know is this: Given a goal, I believe I’ll figure it out. Sometimes the first round of code won’t look pretty, but it works. As I’ve continued to learn more, I would refactor code to make it cleaner, easier to understand, and more efficient.

Sometimes you may have no idea what you’re diving into, but you have a choice: do you take on the challenge and figure it out or do you miss out on an opportunity to learn…

AJ Tatum

I’m a geek and software developer with a passion for the human side of technology. On Medium, you’ll find me discussing everything from life to .NET 🚀.

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