Anyone who has done web development for any significant length of time has probably had one or more of these situations arise:
I need to expose an API or webhook running locally to an external service or application
My application has external services or integrations that require special handling or emulation when developing locally
I want my deployed application or service in a higher environment to call the endpoint(s) that I am running locally
The common problem here is the need to expose a locally running endpoint to an external service or application. Enter ngrok (https://ngrok.com/).
Ngrok solves this problem by creating and exposing a public url on the ngrok.io domain, and then forwarding the traffic that arrives at that endpoint through to a specified localhost port. Conceptually, it looks something like this:
This diagram was taken directly from https://ngrok.com/product, where the curious can find a…
Azure DevOps is a work item tracking, source control, and release management solution provided by Microsoft. It is the cloud-based evolution of Team Foundation Server. If you don’t have a DevOps account, you can get one for free at https://azure.microsoft.com/en-us/services/devops/.
Release Pipelines is a powerful feature of DevOps that allows you to create pipelines to deploy your builds out to your server environments. Let’s say that you are creating a Release Pipeline for your website and you have a separate environment for Dev and Production, both hosted on Azure App Services. When you check code in, you want it to be deployed to your Dev environment automatically through Continuous Integration. This is easily configurable through the Release Pipeline interface.
What about your Production environment though? You want to use the same build artifacts for your Dev and Production environments, so it makes…
Developers with a background in relational databases are accustomed to achieving data integrity using transactions. Once a writer updates a bank balance and commits the transaction, it’s entirely unacceptable for a reader to ever be served the previous value, and a relational database ensures that this never happens. In the NoSQL world, this is referred to as strong consistency. Achieving strong consistency in a NoSQL database is more challenging because NoSQL databases by design write to multiple replicas. And in the case of Azure Cosmos DB, these replicas can be geographically spread across multiple Microsoft data centers throughout the world.
First, let’s understand consistency within the context of a single data center.
In one Azure data center, your data is written out to multiple replicas (four at least). Consistency is all about whether or not you can be sure that the data…
Last April I wrote about the FIRST® Robotics Competition (FRC). Having sponsored Team 1991 (The Dragons) I dropped in on the District Competition at Hartford Public High School to watch them compete. I was so inspired by the students that I volunteered to join the team as a programming mentor for the 2019 season. The theme this season is Destination: Deep Space presented by Boeing. This two-minute video provides an overview of the game.
As for The Dragons and my fellow mentors, a few words come to mind. Passion. Dedication. Teamwork. Students have classwork, exams, part time jobs, and family obligations. Mentors have full time jobs and countless other adult responsibilities. Sharing responsibility, picking up where others left off, night after night, every night, some combination of students and mentors are working together, learning together, and doing their part to move the mission forward toward competition.
Our first competition was the…
The key to retail success in today’s digital world is for retailers to understand where their most significant opportunity exists. Retailers need to anticipate their customers’ needs and competitors’ capabilities by adopting a digital platform. By using Artificial Intelligence (AI) in customer-facing functions, the online retail world can enhance customer satisfaction, increase time efficiency and reduce customer churn.
There are many examples of AI technologies that can aid in this effort. Visual Search can help by detecting and displaying a more tailored array of products related directly to the consumers’ aesthetic guide. Online Personalized Storefronts can improve customer satisfaction by creating a custom shopping experience for each shopper. Conversational Support can streamline the process promptly with 24/7 available support. The backbone of digital transformation is AI. No matter which journey they chose to follow, AI-powered retail experiences will become essential for…
Welcome to part two of Exploring Buffer Overflows in C! If you have not taken the time to read the previous article I highly recommend doing so before going any further. In this post, I will be walking you through a simplified version of a buffer overflow exploit and will draw heavily on the vocabulary and theory discussed out in the last post. You can find Part One on Tallan’s Blog here. It also would be helpful to be familiar with hexadecimal numbers, which you can read about here. With that out of the way, let’s get to hacking.
Before We Begin
Before we can start we have to pick a target. Several methods exist to detect potential buffer overflows, ranging from manually reading the code to automated testing. Assuming you do have the source code of a program, searching for insecure…
Last Thanksgiving, I had the opportunity to mingle with the family members that I rarely get to see which inevitably leads to the predictable small talk question of “so what are you up to?” It was around this time I had just started a position in the User Experience (UX) practice at Tallan and the concept of user experience was still fairly new to me and completely unknown to the person I was talking to.
Commence Small Talk:
“So, user experience huh? Tell me more about it”
“Well…it’s not easily defined”
“Give it a shot.”
You ever have that moment when you are explaining something, and you can tell you have lost the person on the other end of the conversation? This happens to me often, but in this moment, it happened quicker than usual as I attempted to use imagery of Apple, Amazon and…
If you’ve ever signed up for a YouTube account, you’re probably more than familiar with YouTube’s head-scratching video recommendations at times. After mounting dissatisfaction over the new recommendation algorithm, which produced too many similar recommendations and videos promoting misinformation, the YouTube team published a January 2019 post indicating that the algorithm is still a work in progress, and announced changes in response to recent feedback.
The new algorithm changes are advertised to be capable of pulling in recommendations from a wider range of topics than before: “on any given day, more than 200 million videos are recommended on the homepage alone.” Contrasting the broadening of topics, YouTube is putting in an effort to reduce videos from being included in the recommendation algorithm which violate the YouTube Community Guidelines, or videos with the potential to misinform users “…such as videos promoting a…
On February 7th, 2019, Microsoft announced the availability of a new SaaS chatbot offering designed for use in the healthcare industry. They designed it to be a very fast-to-market conversational AI with built-in healthcare language models, terminology, and be compliant with security standards in the industry (HIPAA, ISO 27001, ISO 27018, CSA Gold, GDPR).
Mid-March I began my exploration into this offering and started building my first “Scenario.” Once you have created a bot, you are delivered to a new portal and are quickly presented with a showing of pre-baked templates for you to modify and make your own. At the time there were three available and four listed as coming soon.
I decided to start with the Provider Lookup scenario. Once I created the scenario, I was then taken to a well-designed CMS tool for building it. The tool displays the…
Logging and tracing are both critical components of enterprise software development. And yet they are often overlooked or otherwise treated as an afterthought. However, as any programmer worth his or her salt will tell you, proper logging and tracing saves countless hours and headaches when it comes to tracking down bugs in a production environment. To serve these needs, there are numerous logging frameworks to choose from. In this article I am going to explore two popular frameworks and how to best use them together as a comprehensive logging and tracing solution.
Before we begin, let’s define the difference between logging and tracing. Logging is the broad process of recording events that occur in a running software program. The resulting logs include any information about these events that the developer deems necessary. Tracing, on the other hand, is a more specialized…