Posts by Trey Howard
Java Virtual Threads Explained: Benefits and Code Examples
Introduction to Virtual Threads in JDK 21 JDK 21 has several goodies, but let’s focus on Virtual Threads today. Many years ago, Project LOOM was aimed at revolutionizing concurrent programming. It had a name change to Virtual Threads in JDK 19 and when JDK 21 was released in 2023, it was the first Long Term…
Read MoreMongo Hidden Gem in Aggregation Pipeline, Join Collections with $lookup
Having foreign key relationships in mongo is a bit controversial, but is often a necessary evil. And when it’s necessary, we can use an aggregation query with a $lookup pipeline to effectively join collections. Let’s say we have 2 collections Trainer and Monkey: Trainer documents: { “trainerId”: 1, “name”: “Chris” } Monkey documents: { “name”:…
Read MoreCold Boot – The Dirty Secret of Serverless
Ok, now that I have your attention, let’s talk about how to mitigate cold boots and unlock the full potential of serverless. Within this article, I will be discussing AWS lambda, but the same concepts apply to Azure and Google Cloud. Full disclosure, I am a fan of serverless. It offers many benefits including cost…
Read MoreTakeaways from The Phoenix Project
Pinnacle’s Business Developer Manager, Jeff Noffsinger, wrote a fantastic review of the book The Phoenix Project. Here is his book report on LinkedIn: 9 Takeaways from The Phoenix Project The Phoenix Project has been on my to-read list for awhile and now I’m even more intrigued. It tells the story of a fictional IT shop with…
Read MoreContinuous Integration: Jenkins
What is Jenkins? Jenkins is the backbone of a Continuous Integration (CI) ecosystem. It allows you to manage your projects and configure how they are built. It can be used with any type of build tools, but it really shines for Maven projects because of the extra functionality it offers. There are robust 3rd party plugins…
Read MoreSpring Boot
The sessions at this year’s SpringOne conference covered a wide range of topics, everything from developer tooling to testing to reactive programming to core Spring. However, permeating the keynote and nearly all sessions was Spring Boot, Pivotal’s newest addition to the Spring ecosystem. In fact, one session was titled ‘Building Bootiful Web Applications’. Simplifying the…
Read MoreHTML5 WebSockets
All code and slides can be found on GitHub: https://github.com/thoward333/websockets-demo Know When You Need Real-time Real-time applications need instant updates from the server, often when an external event triggers the need to receive new data. The most popular solution involved long polling, where the page makes an AJAX call to the server that remains open until…
Read MoreSpring + REST + Angular: Consuming the API — Part 2 of 2
This series of posts builds a RESTful service that is consumed by an Angular front end. In this post we will create an Angular application that consumes the RESTful web service we built in Part 1 of the series. The source code for this sample application is on GitHub: https://github.com/thoward333/addrbook Angular Overview Angular is a…
Read MoreSpring + REST + Angular: Creating the API — Part 1 of 2
This series of posts builds a RESTful service that is consumed by an Angular front end. In this post we will create a RESTful web service built on Spring MVC that uses JSON. The source code for this sample application is on GitHub: https://github.com/thoward333/addrbook Service-Oriented Architecture With the growing popularity of Single Page Application (SPA)…
Read MoreInversion of Control with Spring
What is Spring? Spring is an Inversion of Control (IoC) container, which means it uses Dependency Injection (DI) to provide dependencies to classes. For example, let’s say we have a class EventService that has a dependency on a Data Access Object (DAO). Here’s EventService without an IoC container:
Read More