Non-intrusive debugging for any environment

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

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!

Micronaut and KotlinTest

Micronaut and KotlinTest

Usage of MockBean annotation and getMock with KotlinTest while testing Micronaut.

Kotlintest BehaviorSpec

Kotlintest BehaviorSpec

An important find when learning kotlintest, related to the way the tests need to be structured when use mocks and verification.

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
Introducing Pipelines

Introducing Pipelines

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

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

Observability - everything a developer should know

Observability - everything a developer should know

Observability has become an essential practice, especially for DevOps teams. Apparently with the rise of new techs and approaches like the cloud, microservices, serverless, containers and more they are pushing software speed to the highest while reducing friction in getting code to production. They are also creating complex systems. Therefore systems and software need to be observable. Observability is being able to ask questions about what your software or systems are doing and get answers about what they are doing. So different from metrics, alerts, traces, logs or monitoring, it’s more than just knowing if something is up or down, it's able to say; the software’s are doing these specific actions, and this is what we can do to make them better. Today’s post is about everything you need to know about observability. We aren’t looking to bore you with endless writing about the latest buzzword in DevOps, but we are going to highlight the most relevant answers about observability. 

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. 

How Vulcans test streams - Testing Kafka Streams with Spock

How Vulcans test streams - Testing Kafka Streams with Spock

We use Kafka's Streaming API and Avro a lot in the backend of nerd.vision. When it comes to stream processing testing is - who would doubt that - an important factor. As I am a big fan of Spock it was no question to check how it can help us testing our stream processing.

Suppress - surprise? - Kafka Streams and the suppress operator

Suppress - surprise? - Kafka Streams and the suppress operator

Even though I'm in danger of talking about things that have already gotten around, I'd like to briefly talk about the suppress operator of the Kafka Streams API and a surprise we encountered when we first used it.

A reliable debugging tool that could replace the rubber duck

A reliable debugging tool that could replace the rubber duck

The rubber duck has been a serenely caring partner for many programmers all over the world. Despite the funny phrase and initially bizarre concept—rubber duck debugging is a well-known programming practice used by both veteran and novice programmers, often used to crack the problem encountered with their code. Despite the usefulness of the rubber duck, it’s gradually becoming an outdated programming practice, and soon enough, many developers will be switching to something more efficient.

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 Debugger Revamp

NerdVision Debugger Revamp

The nerds at NerdVision have been working hard to get you the latest in debugging. We are excited to annouce the new debugger is now available!

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.

Where does cloud computing and education meet?

Where does cloud computing and education meet?

COVID created massive acceleration in digital transformation throughout the world. This article explores what the future of education and digital infrastructure services could look like and how this will change learning for future generations.

mikey flewitt
Hannah
How to Debug a Python app in Docker using NerdVision

How to Debug a Python app in Docker using NerdVision

In this video, we are going to debug a Python app in Docker using NerdVision. We are going to give you everything you need to get started using NerdVision. Download Docker Desktop: https://www.docker.com/products/docker-desktop Sign up for NerdVision: https://www.nerd.vision/signup Gitlab repository: https://gitlab.com/nerd-vision/nerdulator/python Command to run your docker container: docker run -d -p 9998:9998 -e NV_API_KEY=yourapikey nerdvision/nerdulator:python

mikey flewitt
David Thacker
Bringing Figma to the team

Bringing Figma to the team

An attempt to bring automation to our design process with Figma

Angular Resolvers 101

Angular Resolvers 101

Angular Resolvers can be thought of as “step-in” code that can be called before the Angular Router activates your component to resolve anything your component might/should have on load.

Elastic Cloud Kafka Sink Setup and Usage

Elastic Cloud Kafka Sink Setup and Usage

In this blog post we talk about sinking data from Confluent Cloud to Elastic Cloud without the need for calling Elastics REST API directly.

mikey flewitt
Daniel
Basics of CI/CD

Basics of CI/CD

A quick look into CI/CD pipelines and how you might set one up at Gitlab.

mikey flewitt
Daniel
Using Firestore with Auth0 and Angular

Using Firestore with Auth0 and Angular

A short guide setting up Firestore with Angular & Auth0

Basics of Google Cloud Firestore

Basics of Google Cloud Firestore

Recently we started moving some of our services to use Google Cloud Functions. During the move, we decided to try out Google Firestore for our database. Here are some of the basics of using Firestore.

mikey flewitt
Daniel
How to pass data to a MatDialog

How to pass data to a MatDialog

How to provide data to a MatDialog and use it in a component.

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.

Introducing AWS Lambda support

Introducing AWS Lambda support

With serverless environments on the rise we, at nerd.vision, wanted to provide people with the same debugging options as other platforms. As it stands debugging in a serverless environment is complicated and frustrating. As it can be difficult to replicate the environments locally it can be nearly impossible to reproduce a bug.

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.