AWS Cognito is a very solid authentication service. We often use Cognito as an identity provider (IdP) for the applications we build. We redirect to Cognito, and then Cognito redirects back to us. Cognito gives us a code that we can use to get a JSON Web Token (JWT) to access our services. It’s a…
Read more…
After we have a rough mental model of a software system, we often want to get an overview of the system. In this step, we are trying to peel back one more layer. Where a mental model is a rough understanding of the system, an overview is deeper and more complete. We often jump straight…
Read more…
In my previous blog post, I mentioned how to send APNS messages using C#. In this post, I will do the same using GCM. Sending a GCM message is very similar, but in this case we will use a different NuGet package. You will need to install the FirebaseAdmin NuGet package. The first step of…
Read more…
Over the years, we have built many mobile applications across numerous industries. One of the most common features of these mobile applications is sending push notifications. Most applications we have built have used third-party services to send these notifications. But how hard is it to send APNS notifications? It’s really not that hard. But why…
Read more…
What does a year look like? This is a question you may have been asked before. And there is a variety of works out there discussing the differences in how people perceive a year. Ultimately, many people have some sort of circle for a year. When creating a software system, we should create a mental…
Read more…
When building a solution on top of Cognito, we will often build on top of the existing Cognito user interface. But, it is possible to make all of the authentication calls without using it in a UI. In this blog post, I’ll show how to use C# to make these calls. You probably should avoid…
Read more…
With most solutions, we want to use an IDP (Identity Provider) to manage users. This almost always involves redirecting to a hosted web page to handle user authentication. After the user is authenticated, they are redirected back to our web application. That is a preferred way to handle this problem, mostly because it keeps us…
Read more…
I enjoy trying out different technologies to see what’s new or available. RabbitMQ is one of my recent explorations. In short, RabbitMQ is a free and open source messaging broker. Many cloud providers already have queue solutions, which are easy to work with. But it is always nice to know which options are available if…
Read more…
Charting is something we often do in the software we develop. While it isn’t difficult, it can take more work than you might think. In this blog post, we will create some very simple charts using Chart.js. Assuming we already have an Angular application, we can install Chart.js using npm. npm install chart.js Now let’s…
Read more…
You probably shouldn’t deploy straight from JetBrains Rider to an environment within Azure. Doing so might get you into a bad situation, or at least setting yourself up for a bad situation. But there are a couple of scenarios where this might be useful. The first is if you are building a throwaway prototype and…
Read more…