So we continue to have guests in our show to talk to us about interesting things... This time is about Apache Tika. This is an incredible tool to do search file processing and metadata extraction...
We have a great time talking to Matt Topol from Voltron Data on one of his Apache Software Foundation projects called Apache Arrow. It's both a spec and implementation of a columnar data format t...
Ok, so it's an incredible time to be in the Java Ecosystem, and one of the biggest frameworks out there just dropped their three-point-oh version! That's right! So Spring Boot is not officially 3...
Whew! So we took a big break over summer (like Bob said, we were just swamped with work.. oof), but we are BACK! and like always we are ready to explore even deeper Java topics for the profession...
https://javapubhouse.libsyn.com/episode-101-allright-lets-talk-about-kafka
Yeah! so we have been working with the cloud for a while, terms like K8s, EC2, Route53, BlobData, CLI has been swinged around... and is a little mysterious, and sometimes looks like a black box w...
https://javapubhouse.libsyn.com/episode-100-to-the-cloud-which-one-all-of-them
Ok, so is time to talk about something secretive! Like API Passwords, Auth tokens, or keys... these are things that we want to have as a Secret within our microservice. And yeah, adding them into...
https://javapubhouse.libsyn.com/episode-99-shhh-its-a-secret-storing-api-keys-passwords-tokens
So is time to celebrate! We got a new box of toys with the new release of Java! This is also a Long-Term-Support release which means that's usually a "good one" to jump into! Switch Expressions! ...
https://javapubhouse.libsyn.com/episode-98-its-here-finally-here-java-17-lts-release
So while Java is the "main" language of the JVM, it is by no means the "only" language. And one of the purely functional programming languages is getting a new facelift! Scala has been going th...
https://javapubhouse.libsyn.com/episode-97-hey-there-scala-3-looking-good-with-those-new-features
You'll run it everywhere there's a production system. Some kind of Metrics collector like Statsd or InfluxDB. They work like magic, reporting on the health of your application. but how does it re...
https://javapubhouse.libsyn.com/episode-96-watching-metrics-wmicrometer-and-statsd
So we had a previous episode where we show a party trick with GraalVM, where we saw how to create a Native Image. It was really the "hello world" of Native image creation, so Bob decided that's n...
So it happens. Sometimes a Java program just "dies" with the dreaded Out-of-memory Exception. Sometimes, it leaves behind a "heap dump", or a copy of what the Java program had in memory when just...
We're back! and now we move to the new-fangled serialization and deserialization frameworks, starting with Protobufs! Google's contribution to the serialization space, Protobuf V3 makes it easy t...
https://javapubhouse.libsyn.com/episode-93-not-your-grandpas-serialization-part-deux
Ah, Serialization... the bane of every Java Developer! If you are still using ObjectOutputStream, and Serializable, then you do want to listen to this episode! We move past the objectoutputstream...
https://javapubhouse.libsyn.com/episode-92-not-your-grandpas-serialization
So just in case you didn't know, but being a Java developer is as fun as ever! The ecosystem has been changing from the past year, and today, we have "tons" of Java Developer Kits to choose from....
https://javapubhouse.libsyn.com/episode-91-oraclejdk-openjdk-zulu-corretto-so-many
Java 14 is out! And with it, we now have a preview of Java Records! We go over this newfangled feature... and get this... we finally did it! We actually recorded our first Video Podcast (Woohoo!)...
https://javapubhouse.libsyn.com/episode-90-lets-get-recording-and-video
You heard it going around, everybody is talking about Kubernetes, and Minikube, when using Docker, and CLI. It's like a foreign language! While we know Java very well, with the advent of Devops, ...
https://javapubhouse.libsyn.com/episode-89-kubernetes-oh-container-orchestration
One of the first things that you learn to appreciate when you transition programming from hobby to a way of life is to find a good way to troubleshoot problems. Most of the time this means loggin...
https://javapubhouse.libsyn.com/episode-88-logging-an-interview-wrenaud-from-datadog
It's that Streaming-new-deal that has been taken over the web world, Reactive! You've heard about it, and maybe even tried to learn it a couple of times but find it confusing? Well, be confused n...
https://javapubhouse.libsyn.com/episode-87-ok-its-time-to-get-reactive
Oh my! This episode is going to be one of our favorites. There are times where the Java ecosystem delivers something incredibly interesting (InvokeDynamic, Lambdas, Streams, Kotlin), and this epi...
There are technologies that sometimes are forgotten in a lonely corner, but that actually are quite sturdy. One of these is the All-Powerful Java Management Extensions (also known as JMX). With J...
https://javapubhouse.libsyn.com/episode-85-monitor-the-world-with-jmx
So you get that project that needs to connect to a server that doesn't talk rest, or http(s), but has its own protocol (or maybe it DOES talk https but you are looking for incredible performance!...
https://javapubhouse.libsyn.com/episode-84-lets-get-down-and-dirty-wnetty
You got your new project, it's a brand new service, and is ready to go! But... have you done a health check endpoint for your app? In this day and age of microservices with auto-remediation and a...
https://javapubhouse.libsyn.com/episode-83-hey-your-app-needs-its-yearly-healthcheck-as-well
So the internet is all raging about this (not so little) framework that is doing it all. Created with a "cloud-first" mentality, @Micronautfw is aiming to be your next Spring Boot! And, oh gosh,...
Ah, Project Lombok is one of those little gems in the Java Ecosystem. But it's interestingly controversial! Some will love it (as I do), others will hate it! But no matter which camp you land on,...
Nothing like a cold chilly day to stay inside and program some more. Before you start that new project from scratch, let's go over a pretty cool feature of Maven. Maven Archetypes! Learn how to c...
https://javapubhouse.libsyn.com/episode-80-ah-maven-archetypes-its-gonna-get-meta
So for our new episode we decided to give YOU a holiday gift! Apache Commons! We covered one of the libraries that is ubiquotous in anyone who programs Java, but that not many know how robust and...
OracleCodeOne just happened... and Freddy and Bob couldn't go... So they recruited the help of Josh Juneau to go out there and capture interviews from anyone who would talk to us! Apparently they...
https://javapubhouse.libsyn.com/episode-78-oraclecodeone-the-interviews
So you may have thought about using NoSQL or a Document Database for taking care of you needs. But do you know why that might be not be a good (or a pretty bad idea?). Or you may have a Database ...
It's coming! If you have been using Oracle Java 8, you should know that starting on January 2019 we will have to get an oracle license for running Oracle's JDK in production. OR, if you want to k...
https://javapubhouse.libsyn.com/episode-76-ticktocktime-to-upgrade-to-java-11
While Freddy is travelling from Chicago through the West Coast in a minivan, Bob talked to Todd Ginsberg about the new darling language from the JVM. Kotlin is much more than a novelty now, and ...
https://javapubhouse.libsyn.com/episode-75-lets-get-coding-with-kotlin
In this episode we interview Janine Patterson on her talk of "Integration Test Coverage with JaCoCo" and dive into the nuances of Units vs Integration tests. We dive into Gherkin sentences as we...
Episode 73. Spring Boot 2.0 is out! Hear all about it with Greg Turnquist It's new, it's shiny, and is powerful! The new Spring Boot 2.0 framework is out! And we interviewed Spring's own @gregtur...
We went to one of the best sources to learn what's happening with Var and Java 10, @stuartmarks! Also, what has been (and is being deprecated) on Java 10, and 11. And little inside perspective of...
Episode 71. Jigsaw part II, and Java 10 Highlights! So we finally wrapped Jigsaw in this episode (the most prominent feature for Java 9 (and included a small errata from @stuartmarks ). But Java ...
https://javapubhouse.libsyn.com/episode-71-jigsaw-part-ii-and-java-10-highlights
It was both the most anticipated and (one of the) most controversial features in Java 9. What's the bruhaha all about? What is Jigsaw (or the Java Platform Module System)? What does it bring? Can...
https://javapubhouse.libsyn.com/episode-70-lets-put-puzzles-together-using-java-9s-jigsaw
So it's the holidays and now we are winding down the year. Even so, sometimes this is the best time to actually do some performance testing. And there's no better (foss) tool to do so than JMeter...
Episode 68. Clouding it up with Microsoft Service Fabric Clouds are everywhere and are puffy! In this Sponsored Episode, we dive into one of the main prominent cloud providers out there (Micros...
https://javapubhouse.libsyn.com/episode-68-clouding-it-up-with-microsoft-service-fabric
We sneaked in! Bob and I managed to get into JavaOne (sshhhh....) and made drive-by interviews with some of the luminaries and notable atendees at JavaOne, from Dr. Deprecator @stuartmarks to @re...
https://javapubhouse.libsyn.com/episode-67-recording-from-javaone
So we talked about how to create a rest service (using things like Apache CXF and Spring MVC), but sometimes, we actually need to consume these rest services. Luckily within the Java ecosystem th...
https://javapubhouse.libsyn.com/episode-65-ok-how-about-consuming-rest-services
What a strange omission, of all the concepts, one that all of us should always have is Caching. We have used it (and most likely we have been burned by it). Come and take a listen on how to corre...
https://javapubhouse.libsyn.com/episode-65-oh-my-gosh-we-missed-caching-what-a-cache-miss
You heard about it, and you are probably using it already. It is the Spring framework that took over the Web (Spring Boot!). But what makes it so special? and what lurks under the covers? How did...
https://javapubhouse.libsyn.com/episode-64-oh-its-time-to-re-boot-spring-in-spring
The Java Content Repository (JSR-170 and JSR-283) have been around for a while. For those who don't know it's an actual way of managing content (or assets, or text, or images, or a catalog). Its ...
So let's talk about one of (if not the) largest, and most interesting framework hosted at Apache. Camel is essentially an implementation of the Enterprise Integration Patterns (EIP) book (which i...
It's not the "cool kid" anymore, but it sure is everywhere! If you ever generated an xml file from a java class (or have created a java class from a definition) you have been using Jaxb! And if y...
https://javapubhouse.libsyn.com/episode-61-lets-go-retro-with-jaxbxmlxsd-and-soap-jsr-222
So you have heard about it, and probably ran into it already. Docker is a super cool tech that let us create / manage and deploy applications (It is really what would come out if Devs and Ops dec...
https://javapubhouse.libsyn.com/episode-60-all-your-containers-are-belong-to-us-an-intro-to-docker
Yeah, today Streams might seem like old news, but you know what? It's worth revisiting and discovering what we didn't know from before. In this episode, Bob, Michael, and I come back to revisit S...
So REST is just a webpage that returns JSON right? Well, no! Apparently I've been doing REST All wrong! It's much more rich and complete than what we are led to believe. Come join us with Bob Pau...
https://javapubhouse.libsyn.com/episode-58-hey-you-gotta-give-some-rest-to-those-microservices
Threadlocal is great! It can help you get out of sticky situations, and give you a great boost of performance and/or isolation. But with great tools comes great responsibility. Threadlocal can al...
https://javapubhouse.libsyn.com/episode-57-sometimes-you-want-to-buy-local-threadlocal-that-is
So you heard about sun.misc.unsafe. Even if you are in certain circles you might have heard about that it was (almost) removed from Java 9. And if you were really paying attention you would've he...
Source Control, it's one of those tools that professionally we MUST need to master, and even if you are a hobbyist is a great thing to learn. In today's episode we cover one of the "hottest" sour...
https://javapubhouse.libsyn.com/episode-55-lets-get-git-it-with-it
As a developer, we probably spend most of our time figuring out what went wrong. Debugging really an art, and we sometimes get intimidated by it. Well, if you ever found a bug that has trying to ...
https://javapubhouse.libsyn.com/episode-54-bug-hunt-the-essential-skills-of-the-great-debugger
You always hear about it, Spring MVC this, Spring MVC that, wondering what really happens under the hood. Well, wonder no more! In this episode we break up and analyze Spring MVC to the core, so ...
https://javapubhouse.libsyn.com/episode-53-its-here-spring-emmmveeeeseeemvc
So let's try to understand this Java EE World, shall we? Going from the very basic request, we unravel the magic that a Java EE Container creates. When we see the tricks behind the wall, it sudde...
https://javapubhouse.libsyn.com/episode-52-of-javaee-inter-tubes-and-socket
If you stepped into the Java EE world, you must have run into Spring. There is Spring XD, Spring Batch, Spring everything-under-the-sun. Sometimes we keep using it as a rut, but today we take a l...
You worked with them "all the time", whenever you know it or not! Classloaders are the little workers that make sure all the code is there and ready to be executed. Bob revisits this topics and g...
We know how important it is to mind your p's and q's when it comes to garbage (and garbage collection). We go deep into how Generational Garbage Collectors work including reference types (strong,...
Strike 1, Strike 2, and STRIKE 3! We cover the last of the build tools, GRADLE. It's hip, it's cool, it wears a cool leather jacket and rides around on a great motorcycle. The last of the build t...
https://javapubhouse.libsyn.com/episode-48-lets-get-groovy-with-gradle-in-java
So moving to a more recent build tool we cover probably one of the more popular one. Maven is now incredibly robust, and helps fixing what is known as Jar Hell. Have you ever used two libraries t...
Episode 46. I've got ANTs in my build! It's old, but as build tools go you will find apache Ant everywhere. Here we talk on how ant works and explore the build file. While it looks weird, there...
https://javapubhouse.libsyn.com/episode-46-ive-got-ants-in-my-build
So we are covering what has been in the works for Java EE 8 (JSR-366). This Spec serves as an umbrella for other specs (features) of Java EE. Some of it is very new, and some of it is already a...
https://javapubhouse.libsyn.com/episode-45-java-ee-coming-up-whats-cooking-for-ee
This is our yearly pilmigrade to JavaOne, where we get to meet good old friends, create new memories, and best of all, geek out for an entire week on Java! We got to learn about the big things wa...
So it's all the rage, and things have been getting smaller and slimmer (think your first cell phone compared to today's), well, code is no different! Today we cover a trend on what is considered ...
https://javapubhouse.libsyn.com/episode-44-lets-show-microservices-some-luv
So now we deep dive into what the "Real" advantages of Java 8 are :). The lambdas were just a head-fake (to quote Randy Pausch), the real meat is all the support that was brought because of lambd...
Lambdas... You have heard about it, it's like those celebrities that are everywhere (Tom Selleck). Well, is time to go and actually meet the great start. In this episode, me (Freddy) and Bob go d...
https://javapubhouse.libsyn.com/episode-42-oh-lambda-lambda-lambda-no-omega-muu
And we are ramping up again! This is an exciting time to be developing in Java. With the advent of Java 8, lambdas, streams, Jigzaw and the Internet of Things, we are coming back big! In this epi...
So you have programmed for a while, and may even never realized that you have been using them, but there are static methods (which in turn can create static classes), inner classes and static inn...
So, here's the deal, I went down from Chicago to JavaOne 2013, and took Bob Paulin along. There are sooo many sessions and such great content that it was really hard to know when to start. So we ...
It happens all the time, you are working and suddenly you need to database an object. And maybe you have a fancy O/R Mapper or something like that, but we seldomly ask 'do we really need this in ...
https://javapubhouse.libsyn.com/episode-39-do-i-really-have-to-database-it
So we hear about HyperThreading and how it is sooo cool, well, it is and it isn't. If you are really trying to squeeze performance out of your application HyperThreading might not be what you're ...
Have you ever wonder how bit masking work (or what is that?) and why do you need it? Or why a tree structure exists? (or what is breadth first vs depth first), or what are game trees? We put our ...
https://javapubhouse.libsyn.com/episode-37-of-bits-and-masks-and-bytes-and-trees-and-games
This is a presentation I did for the Chicago Java Users Group on the topic of multithreading. There are some solid foundations in here to start tackling multithreading programming. Some of it mig...
https://javapubhouse.libsyn.com/episode-36-an-intro-to-multithreading-programming
You remember recursion right? that ugly, confusing thing they made you do either on CS-300, or at job interviews. Have you ever wondered how to make it safe and right? and why do we really use re...
https://javapubhouse.libsyn.com/episode-35-recursion-doubles-and-strings-a-little-for-everyone
Episode 34. New Year's (2013) Resolution! Less bugs and more coverage! ---- Ok, so we all celebrated (but may not remember) the end of the old year and the beginning of a new year! This is a ti...
https://javapubhouse.libsyn.com/episode-34-new-year-s-2013-resolution-less-bugs-and-more-coverage
Episode 33. Does code dream when it hibernates? A quick look on the big things of Hibernate ---- Databases have been around forever! (or at least from the 1970s) and there are many things that ...
Shout out to the Chicago Java User's Group! Glad to be part of the Board! And Shout out to Peter Hendriks and Tim Prijn for their presentation! (https://oracleus.activeevents.com/connect/sessio...
Big shout-out to everyone I met at JavaOne (including some avid podcast listeners!). Thanks for listening and for a great time down at JavaOne! Don't worry, we will be sharing all the stuff I lea...
Episode 30. I always thought Generics were as good as brand name Erasers (Java Generics part 1) ---- Hi there! Finally back on a (hopefully) standard schedule. I have been moving a house with th...
We go and visit the Primordial Java Concepts. As rules set in stone we explore the concept of multiple inheritance, method and variable scope (including the final keyword), abstract methods and @...
Episode 28. Extra! Extra! JMS Delivering Messages to your App! Extra! Extra! ---- Java Message Service (or JMS for short) is a collection of APIs and implementations that allows you to send "me...
Episode 27. There's a Log File in the folder in the middle of the App ---- (Sing to the children's song There's a hole in the middle of the sea) Logging is part of everyday production debugging...
https://javapubhouse.libsyn.com/episode-27-there-s-a-log-file-in-the-folder-in-the-middle-of-the-app
As developers, we have to deal with Exceptions every day (or at least every other day). In this episode we dive a bit on exception (and exception handling), plus we talk about certain behaviors t...
Episode 25. Reflection and vampire classes, and compiling Java from within Java. We have heard the word "Reflection" thrown around, what does it mean? it is a new Twilight series? is it about V...
Designers will come to you, and say "Hm, I think your program is not as user-friendly". And sometimes, when you ask them to elaborate, they seem to follow a hidden and cryptic ritual. They are ri...
It always starts when you do your first Thread.sleep(). Why do I have to check for InterruptedException? is it serious? why do I have to catch it? We start with answering these questions and step...
Garbage collections are like the engine of a car, we know it works, we know that it powers the car, but not much else, but once it breaks down, we usually don't have a too much of a clue on how t...
So you're programming along when suddenly support calls and says that the application just "disappeared", or, the server process is not there anymore, both of them leaving you with a hprof.pid fi...
https://javapubhouse.libsyn.com/episode-21-the-jvm-crashed-now-what-
In this podcast we turn and talk of that embarassing uncle that every API has (java.util.date), you know, the one that you have to live with because is family, but don't really like that much? We...
We finish our discussion on the ObjectOutputStream by covering the SerialVersionUID, and then move onto ObjectOutputStream's citadine cousin, XMLEncoder and Decoder (and why would you go and hang...
We all have the need to serialize/deserialize objects (either through the "wire" or to file). In this podcast we go and analyze what exactly happens when we create an ObjectOutputStream and write...
Every developer at one point in time runs into the question, what is beautiful code? Is it code that is expressed concisely? is it code that does a lot in a few lines of code. Well, while we're n...
https://javapubhouse.libsyn.com/episode-17-what-is-beauty-a-discussion-about-beautiful-code
The State pattern is very useful, it's just hard to spot, and at the beginning a little hard to understand. On this podcast we cover the state pattern with a specific example of its use, plus tip...
Taking the performance theme, we move into the dark corners of Java Swing and discover that it is not a lame horse at all! Swing is very fast (with support for directX and OpenGL!), but sometimes...
https://javapubhouse.libsyn.com/episode-15-java-swing-and-performance-it-s-not-slow-
In the second part of optimization, we talk about the tools (or more properly algorithms) that you can use to optimize a piece of code. Ever wonder how to make a piece of code faster? or differen...
https://javapubhouse.libsyn.com/episode-14-optimizing-for-performance-the-tools
We all love speed, code speed that is! In this podcast we delve into code optimizations, and what does it mean to optimize for speed. We go over what is the mind-state that you need as you optimi...
https://javapubhouse.libsyn.com/episode-13-optimizing-for-performance
In this podcast we talk about the Model-View-Controller pattern (and is prettier cousin, the Model-View-Presenter), and go over how to go about implementing the MVC/MVP Pattern (really, what to i...
In this podcast we air our first question/feedback from our listener and dive a little into it (related to Dependency Injection). We also talk about how to create Thread Safe objects (There is th...
Testing, Testing, 1.2.3! (All about Unit Testing, And Dependency Injection) For those Unit Testers out there (and those who want to do more unit tests), this podcast is for you! We cover JUnit ...
In this episode we talk about the Decorator pattern and how it is applied. We cover a couple of caveats (especially when combined with the Observer pattern) and learn how to not be afraid of its ...
https://javapubhouse.libsyn.com/episode-9-it-s-the-holidays-let-s-decorate-
In this episode we go over Aspects (and AspectJ), what really is, and when to use them. It turns out, that there is nothing misterious about them! We also cover how to set-up Aspects for J2SE so ...
https://javapubhouse.libsyn.com/episode-8-what-s-your-aspect-
In this episode we talk about Threads and Threading, the difference between Daemon and User Threads, and why changing priorities is not for the weak of heart. Also we cover Swing's golden Threadi...
https://javapubhouse.libsyn.com/episode-7-threads-priorities-and-swing-s-golden-rule
In this week's podcast we talk about Design Patterns (and the Grand Dads of the Software Patterns, the Gang-of-four), and dive into our first design pattern (of many), the Observer pattern. We di...
In this podcast we dive into the age-old producer and consumer problem, talked about the different aspects of it (what does it really solve?), and explain the difference between throughput vs lat...
In this episode we describe the most used collections in the Java framework, and how can they help you out. We also talk about maps (and the importance of immutable keys), and the equals/hashcode...
This episode goes deep into memory in Java, understanding how memory leaks happen (and how to solve them!), also how to design to avoid memory leaks, weak and soft references, and how the Garbage...
https://javapubhouse.libsyn.com/episode-3-memory-leaks-memory-references-and-garbage-collections-
In this episode of Java pub house, we talk about Deadlocks, livelocks (and other spooky things). Most importantly we talk on how to spot them (using jstack, or visualvm), and how to program defen...
https://javapubhouse.libsyn.com/episode-2-deadlock-livelock-escaped-locks-and-wait-notify-oh-my-
On this Episode, we talk about the keyword "volatile", and what does it really mean. Even if you are a multithreading guru, this chapter goes in deep of the different things that volatile protect...
https://javapubhouse.libsyn.com/episode-1-volatile-and-synchronized