Operations | Monitoring | ITSM | DevOps | Cloud

Debugging

Debugging Java Collections Framework Issues in Production

The Java Collections Framework was a huge leap forward when it was introduced as part of Java 2 (JDK 1.2). Thanks to the included collection classes we finally moved beyond the limits of Vector and Hashtable to more mature and generic solutions. With the introduction of streams and functional concepts in Java 8 the framework took everything to the next level. One of the core principles underlying the framework is coding to the interface.

Debugging the Java Message Service (JMS) API using Lightrun

The Java Message Service API (JMS) was developed by Sun Microsystems in the days of Java EE. The JMS API provides us with simple messaging abstractions including Message Producer, Message Consumer, etc. Messaging APIs let us place a message on a “queue” and consume messages placed into said queue. This is immensely useful for high throughput systems – instead of wasting user time by performing a slow operation in real-time, an enterprise application can send a message.

Building Embedded Systems at Scale with Device Metrics

As embedded development teams build IoT products, there are often questions about what visibility they'll have into devices once they are in the field. How are the devices performing? Is battery power lasting as long as we planned and marketed? What caused this connectivity issue and how do we fix it? What features are customers using most? To properly assess the value of past and future product investments, embedded developers need to implement diagnostic capabilities that help monitor critical metrics that give them insight into overall fleet performance.

Spring Transaction Debugging in Production with Lightrun

Spring makes building a reliable application much easier thanks to its declarative transaction management. It also supports programmatic transaction management, but that’s not as common. In this article, I want to focus on the declarative transaction management angle, since it seems much harder to debug compared to the programmatic approach. This is partially true. We can’t put a breakpoint on a transactional annotation. But I’m getting ahead of myself.

Debugging jsoup Java Code in Production Using Lightrun

Scraping websites built for modern browsers is far more challenging than it was a decade ago. jsoup is a convenient API that makes scraping websites trivial via DOM traversal, CSS Selectors, JQuery-Like methods and more. But it isn’t without its caveat. Every scraping API is a ticking time bomb.

Debugging JAXB Production Issues

Java Architecture for XML Binding (AKA JAXB API) is a popular API for marshaling XML data. It’s a framework for mapping between XML documents and Java POJOs (Plain Old Java Objects, AKA regular Java classes) almost seamlessly. The API is very easy to use and many frameworks leverage it to provide their XML support. JAXB2.0 has gained popularity both in desktop applications (Java SE) and in application server code (Spring Boot, Java EE/Jakarta EE, Microprofile etc.).

Managing Android Devices at Scale with Memfault AOSP SDK Bort 4.0

The Memfault Android OS SDK allows IoT developers to collect detailed diagnostics from Android devices on everything from low-level hardware or kernel issues to high-level application crashes, and automatically upload them to Memfault. In this webinar, Heiko Behrens introduces the Memfault AOSP SDK (support for Android 8 to 12) and covers these new features in the latest release (v4.0): Presentation: 0:00 – 44:25 Q&A from live audience: 44:26 – 58:54

Debugging Java Equals and Hashcode Performance in Production

I wrote a lot about the performance metrics of the equals method and hash code in this article. There are many nuances that can lead to performance problems in those methods. The problem is that some of those things can be well hidden. To summarize the core problem: the hashcode method is central to the java collection API. Specifically, with the performance of hash tables (specifically the Map interface hash table). The same is true with the equals method.