Non-intrusive debugging for any environment

Debug applications throughout the development lifecycle with a single tool, wherever they are hosted

Gitlab Kubernetes runner using EKS and spot instances

Gitlab Kubernetes runner using EKS and spot instances

A guide on how to set up a Gitlab runner using an AWS EKS (Kubernetes) cluster with spot instances.

Why it is good to have a good sprint goal

Why it is good to have a good sprint goal

A closer look at the term "Sprint Goal" and some lessons we have learned in regard to this.

Tips for using Flex with Angular

Tips for using Flex with Angular

Some tips and tricks for beginning to understand and use flex with angular

Dependency Injection in Go

Dependency Injection in Go

A quick look into dependency injection in Go.

mikey flewitt
Daniel
NestJS: Third Party OAuth2 Authentication

NestJS: Third Party OAuth2 Authentication

Using OAuth2 to authenticate users in your NestJS app is a pretty easy process. Let's go through it with Discord.

Adding themes to storybook

Adding themes to storybook

Storybook is a fantastic tool for building your UI components in an isolated environment ensuring that you build your components in a robust and reusable fashion as you should for the various UI frameworks it supports.

Some thoughts on the Definition of Ready

Some thoughts on the Definition of Ready

Scrum: Some thoughts on the Definition of Ready

Interfaces in Go

Interfaces in Go

Recently I started learning Go. Coming from a mostly Java background, interfaces in Go were a confusing concept. From my Object-oriented programming knowledge I know what an interface is, and how to design one, however with no classes, how is it done?

mikey flewitt
Daniel
NerdVision on CommandBox

NerdVision on CommandBox

A quick introduction to using nerd.vision with command box and the command box module.

Fusion Reactor takes nerd.vision for a test drive!

Fusion Reactor takes nerd.vision for a test drive!

Real world insight into nerd.vision and the problems it solved from a developers perspective!

NerdVision officially supports Adobe ColdFusion and Lucee!

NerdVision officially supports Adobe ColdFusion and Lucee!

NerdVision now officially supports ColdFusion Markup Language for both Adobe ColdFusion and Lucee!

mikey flewitt
David Thacker
NerdVision now supports Lucee

NerdVision now supports Lucee

Today we are pleased to announce that NerdVision officially supports Lucee! 

mikey flewitt
David Thacker
Testing a Typescript project with Jest (ts-jest)

Testing a Typescript project with Jest (ts-jest)

Setting up and testing your non-angular project using Jest

The hand that rocks the Gradle

The hand that rocks the Gradle

A few personal thoughts about Gradle...

Tracking down a bad dependency in maven

Tracking down a bad dependency in maven

Sometimes it can be hard to find that odd dependency in your project that is causing you some headaches. In this article I describe one of these cases and how we resolved the issue.

Integrating Google Auth with Docker Containers

Integrating Google Auth with Docker Containers

As part of our strive to improve security we recently decided to add authentication to some of our docker containers. We use Traefik, and I found this great blog: “Integrating Google OAuth with Traefik” that uses the project, “Traefik Forward Auth”, to add Google authentication for Traefik.

nerd.vision now supports ColdFusion

nerd.vision now supports ColdFusion

I know many people have never heard of ColdFusion but it is still a fairly well used programming language for some very large sites. At nerd.vision we are happy to announce that we now support Adobe ColdFusion. Installing nerd.vision in a Adobe ColdFusion platform is as simple as other agents, we simple need to be added to the jvm.config file for the server. We have complete documentation available on our docs site https://docs.nerd.vision/coldfusion/install/.

Change log messages without restart!

Change log messages without restart!

With nerd.vision you can quickly change or create log messages without restart. Reducing your mean time to recovery (MTTR).

Understanding Java Buffer Pool Memory Space

Understanding Java Buffer Pool Memory Space

Java buffer pool memory space is a non-managed memory space located outside of the garbage collector-managed memory. To better understand the Java buffer pool memory space, we would first learn the basics about buffer memories.

AJAX: The Asynchronous Programming Paradigm, For the Asynchronous Mind

AJAX: The Asynchronous Programming Paradigm, For the Asynchronous Mind

Coming from a conventional programming background, AJAX was a bit strange to me at first. But trust me, it seems to exist as a handy plugin when it comes to asynchronous and real-time database manipulations. Matter of fact, it happens to be one of the most notable add-ons to the web development toolset, since the rejuvenation of the modern frontend tools. While the existing workaround to data processing within a web app was to filter in all processes into a thread – in a nutshell, synchronous. AJAX came along with an even better approach to handle database operations without waiting in the thread queue by creating its own thread - or some sort of sub-thread to handle its operations.

Pros and cons of Frameworks in web development

Pros and cons of Frameworks in web development

Frameworks are straightforward representations of a programming language, as they are easy to learn and get the job done in no time. However, excessive use of these development tools often eradicates one’s chances of getting the real deal – learning the language with a much more comprehensive overview. Think of it as going to college, only you never really get the thrill of it because you were homeschooled.

Teambuilding in the times of Corona

Teambuilding in the times of Corona

Maintaining the team spirit in times of the Corona crisis

Theme support with Angular Material

Theme support with Angular Material

How we implemented theming with Angular Material from the ground up to create custom themes that requires nothing more than one file.

Introducing Groups

Introducing Groups

Introducing groups with collaborative debugging!

NerdVision on CommandBox

NerdVision on CommandBox

A quick introduction to using nerd.vision with command box and the command box module.

Traps to avoid when dealing with time critical issues

Traps to avoid when dealing with time critical issues

All Developers/Operations team members know the pressure and stress of finding and fixing a critical issue in their code or infrastructure. When dealing with issues, they often enter panic mode to try and get the issue resolved as soon as possible. While this can yield positive results, it can also lead to mistakes. Two frequent traps we fall into when in panic mode are: The quick fix - you cut some corners so that everything starts working again, promising to fix those tests or perform that extra step laterMaking too many changes - you implement several fixes at once, then have to figure out what change fixed the issue

Why debug in production?

Why debug in production?

A selection of common question about debugging in production.

The future of nerd.vision

The future of nerd.vision

What is happening next in nerd.vision? You decide.

Configuring nerd.vision to automatically run in Docker

Configuring nerd.vision to automatically run in Docker

A guide to configuring nerd.vision to automatically run when your Docker container starts.

Using conditional breakpoints to fix a bug

Using conditional breakpoints to fix a bug

An example using conditional breakpoints to find a corner case in our test application.

Getting started with nerd.vision for Java applications

Getting started with nerd.vision for Java applications

By following the steps in this blog post you will be able to install and configure nerd.vision so you are able to debug your Java application.

Configuring nerd.vision to automatically run in Docker

Configuring nerd.vision to automatically run in Docker

A guide to configuring nerd.vision to automatically run when your Docker container starts.

Installation and configuration instruction video for nerd.vision

Installation and configuration instruction video for nerd.vision

You can see how to install and configure nerd.vision in our useful video we also have details and code in our getting started with nerd.vision blog.

NerdVision on CommandBox

NerdVision on CommandBox

A quick introduction to using nerd.vision with command box and the command box module.

Introducing Groups

Introducing Groups

Introducing groups with collaborative debugging!

Introducing Pipelines

Introducing Pipelines

Introducing integrations in nerd.vision, pipelines allow you to be notified when ever a Tracepoint it triggered.

Debugging local projects with nerd.vision

Debugging local projects with nerd.vision

I've found an issue in development. Let’s use the nerd.vision debugger with the project on my computer to see what could be wrong.

Getting started with nerd.vision in Node.js applications

Getting started with nerd.vision in Node.js applications

A quick guide to getting nerv.vision up and running in Node.js

Getting started with Node.js? How to debug your first Node.js application

Getting started with Node.js? How to debug your first Node.js application

Are you getting started with Node.js? What is the best way to debug your node apps?

Getting started with nerd.vision for Java applications

Getting started with nerd.vision for Java applications

By following the steps in this blog post you will be able to install and configure nerd.vision so you are able to debug your Java application.

Advice for support engineers handling customer escalations

Advice for support engineers handling customer escalations

In my role as a technical support engineer, I have seen all manner of escalations. They can come in the form of; A performance bug in the productA corner case issue you wouldn't consider a user hitting a service being offline that the product depends onA third party library the product depends on being upgraded many more! From a support engineer's perspective, here are a few tips I have learned over the years on how to approach an escalation.

Using conditional breakpoints to fix a bug

Using conditional breakpoints to fix a bug

An example using conditional breakpoints to find a corner case in our test application.

Tips for using Flex with Angular

Tips for using Flex with Angular

Some tips and tricks for beginning to understand and use flex with angular

Dependency Injection in Go

Dependency Injection in Go

A quick look into dependency injection in Go.

mikey flewitt
Daniel
NerdVision officially supports Adobe ColdFusion and Lucee!

NerdVision officially supports Adobe ColdFusion and Lucee!

NerdVision now officially supports ColdFusion Markup Language for both Adobe ColdFusion and Lucee!

mikey flewitt
David Thacker
NerdVision now supports Lucee

NerdVision now supports Lucee

Today we are pleased to announce that NerdVision officially supports Lucee! 

mikey flewitt
David Thacker
The hand that rocks the Gradle

The hand that rocks the Gradle

A few personal thoughts about Gradle...

Integrating Google Auth with Docker Containers

Integrating Google Auth with Docker Containers

As part of our strive to improve security we recently decided to add authentication to some of our docker containers. We use Traefik, and I found this great blog: “Integrating Google OAuth with Traefik” that uses the project, “Traefik Forward Auth”, to add Google authentication for Traefik.

Change log messages without restart!

Change log messages without restart!

With nerd.vision you can quickly change or create log messages without restart. Reducing your mean time to recovery (MTTR).

Theme support with Angular Material

Theme support with Angular Material

How we implemented theming with Angular Material from the ground up to create custom themes that requires nothing more than one file.

Manjaro: ModuleNotFoundError: No module named 'pacman_mirrors'

Manjaro: ModuleNotFoundError: No module named 'pacman_mirrors'

A small guide to pacman and fixing some issues revolving around pacman-mirrors and system updates for Manjaro Linux.

mikey flewitt
Daniel
Helpful commands for Laradock

Helpful commands for Laradock

A few commands I found helpful when working with Laradock.

Unit tests in PHP, Laradock and IntelliJ IDEA

Unit tests in PHP, Laradock and IntelliJ IDEA

A quick guide to setting up laradock and JetBrains idea to run and debug unit tests.

Using Laradock with Jetbrains IntelliJ IDEA

Using Laradock with Jetbrains IntelliJ IDEA

Configuration of laradock to help with local development of PHP using JetBrains Idea IDE as a debugger.

Cypress.io and how it changed the way we test UI

Cypress.io and how it changed the way we test UI

A short introduction to some of the practises we adopted as a company to improve our front end testing and coverage

Separating schema definitions in Avro

Separating schema definitions in Avro

How we separated our Avro schemas using the Maven Avro plugin.

mikey flewitt
Daniel
Onboarding and guiding users through nerd.vision

Onboarding and guiding users through nerd.vision

UI/UX strategies for guiding users through nerd.vision

Some peculiarities of Avro that are worth knowing

Some peculiarities of Avro that are worth knowing

Some important information to know when using Avro with Maven and Java.

Easy way to convert Json to Avro

Easy way to convert Json to Avro

Converting Json to Avro while only maintaining a single definition of a model used in the REST API and Kafka streams.

Jacoco Coverage of Utility Classes

Jacoco Coverage of Utility Classes

When using Jacoco for test coverage, there are some circumstances where code is not covered unexpectedly. This blog covers Jacocos interaction with constant utility classes in Java.

mikey flewitt
Daniel
How we solved a case where IndexedDB did not connect

How we solved a case where IndexedDB did not connect

We encountered an issue where IndexedDB did not connect, this is how we solved it.

Multithreading and Multiprocessing

Multithreading and Multiprocessing

Many programming languages allow for multithreading and multiprocessing as a means of parallel execution of code. This form of programming allows for tasks to be split into groups of tasks that can be executed concurrently. This can lead to faster execution times for tasks that are not blocked by other operations. There are however several advantages and disadvantages to this form of programming.Multithreading and Multiprocessing can allow for better performance when executing certain operations. There are many different forms of multithreading and multiprocessing implementations, it is important to know the limitations of each implementation and to consider such things as: number of processors (or threads) that are available when the code is runningthe duration and number of tasks that are being executed

Python vs. Java: When to use which

Python vs. Java: When to use which

Java and Python are high-level programming languages based on Object-oriented paradigm. But which is better for each situation?

Developer issues when working in containers

Developer issues when working in containers

Containers are fast becoming an adapted technology in computing today. But they aren't a magical fix for all issues.

X-Real-IP with docker swarm and TCP LB

X-Real-IP with docker swarm and TCP LB

Recently we changed to use an AWS NLB so we could use gRPC and HTTP/2 all the way to the microservices that answer the requests. X-Real-IP was missing though.

NoSuchAlgorithmException when using PowerMockito

NoSuchAlgorithmException when using PowerMockito

Today I encounter an issue with PowerMockito, this is how I fixed it.

MonogDB replication loop

MonogDB replication loop

After adding some new nodes to our MongoDB sharded cluster, the replication got stuck in the Startup2 phase. This is the simple fix.

The Importance of Monitoring Entropy

The Importance of Monitoring Entropy

Why entropy is important and how we solved the issue of our servers not having enough.

Fusion Reactor takes nerd.vision for a test drive!

Fusion Reactor takes nerd.vision for a test drive!

Real world insight into nerd.vision and the problems it solved from a developers perspective!

Why is technical debt becoming increasingly important?

Why is technical debt becoming increasingly important?

Technical debt is very similar to financial debt in that software developer’s use when talking about the extra costs associated with changing a system’s codebase and architecture. It can involve debugging code or revising requirements for a weak design or aging third-party library. Technical debt is significant to most organizations using software to run their business as it costs time as well as money. Gartner estimated that the sum amount of technical debt worldwide reached $1 trillion in 2015 and could double its figure in the coming years. With this in mind, let’s look at what technical debt is and a few reasons why technical debt is becoming increasingly important. 

Debugging in containerized environments

Debugging in containerized environments

Debugging in a containerized environment is entirely safe with few exceptions in production environments.

Why debug in production?

Why debug in production?

A selection of common question about debugging in production.

Missing Python.h file when installing nerd.vision

Missing Python.h file when installing nerd.vision

Python.h: No such file or directory. Install python-dev via apt or yum.